Sit*_*elo 0 excel vba excel-vba
我已粘贴工作表1.请注意列.要监控的是标题描述和健康状况.一旦在列下更改发生更改,就会插入一个S. 例如,Spectacle Frame更改为Spec Frame,我们在Change下插入S. 更改列原始为空.在Healthman的价格变化下,在"更改"列下插入了P. 当要删除产品即删除行时,在"更改"下插入X. 当插入一行时,因为我正在按单元格与隐藏的单元格进行比较,这就是我更新隐藏工作表的原因.我尝试了以前的代码,它没有工作,并考虑粘贴工作表进行审查.
图例:P =价格
变动
N =新X =已删除S =描述
代码更改说明HEALTHMAN
40501 Spectacle Frame
40609 Sunglasses
40525 S Ready Made Optical
41008 Spectacle Case
43025 P Transfer - Zyl or Metal Frame 198.00
43126 P Transfer - Nylon Supra Frame 314.00
43136 P Transfer - Rimless Frame 359.00
Run Code Online (Sandbox Code Playgroud)
与Worksheet_Change您合作时必须确保两件事.
1)必须进行适当的错误处理
2)关闭.EnableEvents以避免无限循环的可能性.
的假设
1)您想捕获Cell中的更改A1
2)你想要显示"S"A2
因此,请在下面的代码中进行更改.
码
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
If Not Intersect(Target, Range("A1")) Is Nothing Then
Application.EnableEvents = False
Range("A2").Value = "S"
End If
LetsContinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
Run Code Online (Sandbox Code Playgroud)
跟进
这是你在尝试什么?
这在"ThisWorkbook"代码区域中.
Private Sub Workbook_Open()
Dim hiddenSheet As Worksheet
Set hiddenSheet = Me.Worksheets.Add
hiddenSheet.Visible = xlSheetVeryHidden
On Error Resume Next
Application.DisplayAlerts = False
Sheets("HiddenSheet").Delete
Application.DisplayAlerts = True
On Error GoTo 0
hiddenSheet.Name = "HiddenSheet"
Sheet1.Range("A1:D15").Copy hiddenSheet.Range("A1:D15")
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.DisplayAlerts = False
Sheets("HiddenSheet").Delete
Application.DisplayAlerts = True
On Error GoTo 0
End Sub
Run Code Online (Sandbox Code Playgroud)
这是相关的表格区域
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
If Not Intersect(Target, Range("A1:D15")) Is Nothing Then
Dim old_value
Application.EnableEvents = False
old_value = Sheets("HiddenSheet").Range(Target.Address).Value
If Target.Value <> old_value Then
'~~> Change 1 to whatever offset that you want.
Target.Offset(0, 1).Value = "S"
End If
End If
LetsContinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
Run Code Online (Sandbox Code Playgroud)
HTH
希德