excel 根据另一个单元格值更改单元格范围

mqkwyuun  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(151)

我想写一个应用于1000行的Excel代码。在每一行中,一旦我将列G中的单元格值更改为No,相应的行(即列H-Z)将自动填充X
我试着写下面的代码,但它并不总是工作,只是偶尔出现,有人能帮助我吗?

Private Sub Worksheet_Change(ByVal Target As Range)
    'MsgBox Target.Address
    If Not Application.Intersect(Range("B1:B100"), Range(Target.Address)) Is Nothing Then
        Call Change_value
    End If
End Sub

Sub Change_value()
    If ActiveCell.Value = "No" Then
        Cells(ActiveCell.Row, 4).Value = "Ok"
    End If
End Sub

字符串

vxqlmq5t

vxqlmq5t1#

你的问题出在这里:
这是矛盾的。
你说你希望代码应用于“Excel中的1000行”,但你的代码只引用了100行(“B1:B100”)
你说你想让它在“G列”中的单元格发生变化时触发sub--但你的代码引用的是B列

  • 如此一来,人们很难理解你的真正意图 *

您的代码应该格式化为代码-我的意思是,当您输入您的问题,您突出显示所有的代码,并选择{}将其标记为代码
我给你给予个解决办法。
当任务像下面这样简单时,你不需要从Private Sub中调用一个sub。假设你的意思是列G和1000行,这应该对你有用:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("G1:G1000"), Target) Is Nothing Then

If Target.Rows.Count > 1 Then Exit Sub

If Target.Value = "No" Then
    Range(Target.Offset(0, 1), Target.Offset(0, 19)).Value = "X"
End If

End If
End Sub

字符串

相关问题