![](/img/trans.png)
[英]Worksheet_Change(ByVal Target As Range), Target always equals Nothing
[英]VBA Worksheet_Change(ByVal Target As Range)
我正在尝试通过字符串更改变量的值,但它不允许,例如,当我在下拉列表中选择 2 时,我希望出现 2/2 但出现 1
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
selectedNa = Target.Value
If Target.Column = 2 Then
selectedNum = Application.VLookup(selectedNa, Worksheets("Descrição").Range("ClassVEE"), 2, False)
If Not IsError(selectedNum) Then
Target.Value = selectedNum
End If
End If
尝试
Target.Value = "'" & selectedNum
每当您在Worksheet_Change
事件中更改单元格值时,您都需要禁用事件。 否则更改单元格值将触发另一个Worksheet_Change
事件,这将触发另一个……
也可以将2/2
解释为日期(取决于本地化设置)。 因此,通过将.NumberFormat
设置为文本,确保 Excel 将其作为文本。
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
If Target.Column = 2 Then
selectedNum = Application.VLookup(Target.Value, Worksheets("Descrição").Range("ClassVEE"), 2, False)
If Not IsError(selectedNum) Then
Application.EnableEvents = False ' make sure you don't run into an endless loop
Target.NumberFormat = "@" ' ensure 2/2 does not get interpreted as date or something odd.
Target.Value = selectedNum
Application.EnableEvents = True
End If
End If
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.