Ինչպե՞ս հիշել կամ պահպանել փոխված բջիջի նախորդ բջջային արժեքը 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-ի հետ Excel-ի համար և փորձեք արդյունավետությունը, ինչպես երբեք: Kutools-ը Excel-ի համար առաջարկում է ավելի քան 300 առաջադեմ առանձնահատկություններ՝ արտադրողականությունը բարձրացնելու և ժամանակ խնայելու համար: Սեղմեք այստեղ՝ Ձեզ ամենաշատ անհրաժեշտ հատկանիշը ստանալու համար...
Office Tab- ը Tabbed ինտերֆեյսը բերում է Office, և ձեր աշխատանքը շատ ավելի դյուրին դարձրեք
- Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
- Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
- Բարձրացնում է ձեր արտադրողականությունը 50%-ով և նվազեցնում մկնիկի հարյուրավոր սեղմումները ձեզ համար ամեն օր: