Ինչպե՞ս հիշել կամ պահպանել փոխված բջիջի նախորդ բջջային արժեքը Excel- ում:
Սովորաբար, նոր բովանդակությամբ բջիջը թարմացնելիս նախորդ արժեքը ծածկված կլինի, եթե չեղարկեք գործողությունը Excel-ում: Այնուամենայնիվ, եթե ցանկանում եք պահպանել նախկին արժեքը թարմացված արժեքի հետ համեմատելու համար, ապա նախորդ բջիջի արժեքը մեկ այլ բջիջում կամ բջիջի մեկնաբանության մեջ պահելը լավ ընտրություն կլինի: Այս հոդվածի մեթոդը կօգնի ձեզ հասնել դրան:
Պահպանեք նախորդ բջջային արժեքը Excel- ում VBA կոդով
Պահպանեք նախորդ բջջային արժեքը Excel- ում VBA կոդով
Ենթադրելով, որ դուք ունեք սեղան, ինչպես ցույց է տրված էկրանի նկարը: Եթե C սյունակում որևէ բջիջ փոխվել է, ապա դուք ցանկանում եք պահպանել դրա նախորդ արժեքը G սյունակի համապատասխան բջիջում կամ ավտոմատ կերպով պահպանել մեկնաբանության մեջ: Դրան հասնելու համար արեք հետևյալը.
1. Աշխատաթերթում պարունակում է այն արժեքը, որը դուք կփրկեք թարմացնելիս, սեղմեք աջ սեղմեք թերթիկի ներդիրի վրա և ընտրեք Դիտել կոդը աջ կտտացնելու ցանկից: Տեսեք,
2. Բացման մեջ Microsoft Visual Basic հավելվածների համար պատուհանը, պատճենեք ներքևի VBA կոդը օրենսգրքի պատուհանում:
Հաջորդ VBA կոդը օգնում է ձեզ խնայել նշված սյունակի նախորդ բջջային արժեքը մեկ այլ սյունակում:
VBA կոդ. Նախորդ բջիջի արժեքը պահպանել մեկ այլ սյունակի բջիջում
Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
Dim xCell As Range
Dim xDCell As Range
Dim xHeader As String
Dim xCommText As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "Previous value :"
x = xDic.Keys
For I = 0 To UBound(xDic.Keys)
Set xCell = Range(xDic.Keys(I))
Set xDCell = Cells(xCell.Row, 7)
xDCell.Value = ""
xDCell.Value = xDic.Items(I)
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I, J As Long
Dim xRgArea As Range
On Error GoTo Label1
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Set xDependRg = Target.Dependents
If xDependRg Is Nothing Then GoTo Label1
If Not xDependRg Is Nothing Then
Set xDependRg = Intersect(xDependRg, Range("C:C"))
End If
Label1:
Set xRg = Intersect(Target, Range("C:C"))
If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = Union(xRg, xDependRg)
ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = xDependRg
ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
Set xChangeRg = xRg
Else
Application.EnableEvents = True
Exit Sub
End If
xDic.RemoveAll
For I = 1 To xChangeRg.Areas.Count
Set xRgArea = xChangeRg.Areas(I)
For J = 1 To xRgArea.Count
xDic.Add xRgArea(J).Address, xRgArea(J).Formula
Next
Next
Set xChangeRg = Nothing
Set xRg = Nothing
Set xDependRg = Nothing
Application.EnableEvents = True
End Sub
Մեկնաբանության մեջ նախորդ բջիջի արժեքը պահպանելու համար խնդրում ենք կիրառել ստորև նշված VBA կոդը
VBA կոդ. Խնայեք նախորդ բջջային արժեքը մեկնաբանության մեջ
Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Long
Dim xCell As Range
Dim xHeader As String
Dim xCommText As String
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "Previous value :"
For I = 0 To UBound(xDic.Keys)
Set xCell = Range(xDic.Keys(I))
If Not xCell.Comment Is Nothing Then xCell.Comment.Delete
With xCell
.AddComment
.Comment.Visible = False
.Comment.Text xHeader & vbCrLf & xDic.Items(I)
End With
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim I, J As Long
Dim xRgArea As Range
On Error GoTo Label1
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Set xDependRg = Target.Dependents
If xDependRg Is Nothing Then GoTo Label1
If Not xDependRg Is Nothing Then
Set xDependRg = Intersect(xDependRg, Range("C:C"))
End If
Label1:
Set xRg = Intersect(Target, Range("C:C"))
If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = Union(xRg, xDependRg)
ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
Set xChangeRg = xDependRg
ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
Set xChangeRg = xRg
Else
Application.EnableEvents = True
Exit Sub
End If
xDic.RemoveAll
For I = 1 To xChangeRg.Areas.Count
Set xRgArea = xChangeRg.Areas(I)
For J = 1 To xRgArea.Count
xDic.Add xRgArea(J).Address, xRgArea(J).Text
Next
Next
Set xChangeRg = Nothing
Set xRg = Nothing
Set xDependRg = Nothing
Application.EnableEvents = True
End Sub
ՆշումԿոդում. 7 համարը նշում է G սյունակը, որի մեջ դուք կփրկեք նախորդ բջիջը, իսկ C: C- ը այն սյունն է, որը դուք կփրկեք նախորդ բջիջի արժեքը: Խնդրում ենք փոխել դրանք ՝ ելնելով ձեր կարիքներից:
3: սեղմեք Գործիքներ > Սայլակ բացելու համար Հղումներ - VBAP նախագիծ երկխոսության տուփ, ստուգեք Microsoft Scripting Runtime տուփը և վերջապես կտտացրեք այն OK կոճակ Տեսեք,
4. Սեղմեք ալտ + Q ստեղները փակելու համար Microsoft Visual Basic հավելվածների համար պատուհան.
Այսուհետ, երբ C սյունակում բջջային արժեքը թարմացվի, բջիջի նախորդ արժեքը կպահպանվի G սյունակի համապատասխան բջիջներում կամ կփրկվի մեկնաբանության մեջ, ինչպես ցույց են տրված ստորև նշված նկարները
Պահպանեք նախորդ բջիջների արժեքները այլ բջիջներում.
Պահպանեք նախորդ բջիջների արժեքները մեկնաբանություններում.
Գրասենյակի արտադրողականության լավագույն գործիքները
Excel-ի համար Kutools-ը լուծում է ձեր խնդիրների մեծ մասը և բարձրացնում ձեր արտադրողականությունը 80%-ով
- Վերաօգտագործել: Արագ տեղադրեք բարդ բանաձևեր, գծապատկերներ և այն ամենը, ինչ դուք նախկինում օգտագործել եք. Ryածկագրել բջիջները գաղտնաբառով; Ստեղծեք փոստային ցուցակ և նամակներ ուղարկել ...
- Super Formula Bar (հեշտությամբ խմբագրեք տեքստի և բանաձևի բազմաթիվ տողեր); Ընթերցանության դասավորությունը (հեշտությամբ կարդալ և խմբագրել մեծ թվով բջիջներ); Տեղադրել ֆիլտրացված տիրույթում...
- Միաձուլել բջիջները / տողերը / սյունակները առանց տվյալների կորստի. Պառակտված բջիջների պարունակությունը; Միավորել կրկնօրինակ տողերը / սյունակները... Կանխել կրկնօրինակ բջիջները; Համեմատեք միջակայքերը...
- Ընտրեք Կրկնօրինակ կամ Եզակի Շարքեր; Ընտրեք դատարկ շարքեր (բոլոր բջիջները դատարկ են); Super Find և Fuzzy Find շատ աշխատանքային գրքույկներում; Պատահական ընտրություն ...
- Actշգրիտ պատճեն Բազմաթիվ բջիջներ ՝ առանց բանաձևի հղումը փոխելու; Ավտոմատ ստեղծեք հղումներ դեպի մի քանի թերթեր; Տեղադրեք փամփուշտներ, Տուփեր և ավելին ...
- Քաղվածք տեքստ, Տեքստ ավելացնել, հեռացնել ըստ դիրքի, Հեռացնել տարածությունը; Ստեղծել և տպել էջային ենթագոտիներ; Փոխարկել բջիջների բովանդակության և մեկնաբանությունների միջև...
- Սուպեր զտիչ (պահպանել և կիրառել ֆիլտրի սխեմաները այլ թերթերի վրա); Ընդլայնված տեսակավորում ըստ ամիս / շաբաթ / օր, հաճախականություն և ավելին; Հատուկ զտիչ համարձակ, շեղատառով ...
- Միավորել աշխատանքային տետրերը և աշխատանքային թերթերը; Միավորել աղյուսակները ՝ հիմնված հիմնական սյունակների վրա; Տվյալները բաժանեք մի քանի թերթերի; Խմբաքանակի փոխակերպում xls, xlsx և PDF...
- Ավելի քան 300 հզոր հատկություններ. Աջակցում է Office / Excel 2007-2021 և 365: Աջակցում է բոլոր լեզուներին: Հեշտ տեղակայում ձեր ձեռնարկությունում կամ կազմակերպությունում: Ամբողջական հնարավորություններ 30-օրյա անվճար փորձարկում: 60-օրյա գումարի վերադարձի երաշխիք:

Office Tab- ը Tabbed ինտերֆեյսը բերում է Office, և ձեր աշխատանքը շատ ավելի դյուրին դարձրեք
- Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
- Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
- Բարձրացնում է ձեր արտադրողականությունը 50%-ով և նվազեցնում մկնիկի հարյուրավոր սեղմումները ձեզ համար ամեն օր:




















