【发布时间】:2019-11-08 15:16:48
【问题描述】:
我正在做一些数据验证工作,基本上,每当我更改数据中的一行时,我还需要在同一行的 J 列中写“是”。我认为这应该是可自动化的,但我在代码上遇到了一些问题。
我想要它做的是检查 C-H 行的变化,如果 B 列上有数字(0-99),则将同一行的 J 列上的文本替换为“是"(不带引号)。在这种情况下,“数字”部分可以缩写为长度为 1-2(不是 0 也不是更多)。
这是我到目前为止所拥有的,但我似乎无法弄清楚如何组合绝对和相对引用,即“检查活动行的 B”或“更改活动行的 J”(即也就是说,到目前为止,我尝试过的代码都没有根据 VBA 有效;我的 VBA 经验很少,所以这段代码对我来说很陌生):
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C:H")) Is Nothing Then Exit Sub
If Not Len("B" & ActiveCellRow) = "1" Then
If Not Len("B" & ActiveCellRow) = "2" Then
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
"J" & ActiveCellRow = "Yes"
.EnableEvents = True
.ScreenUpdating = True
End With
【问题讨论】: