Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 根据另一个单元格值更改单元格范围_Excel_Vba - Fatal编程技术网

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

Excel 根据另一个单元格值更改单元格范围,excel,vba,Excel,Vba,我想编写一个VBA代码,应用于excel中的1000行。在每一行中,一旦我将列G中的单元格值更改为No,相应的行(即列H-Z)将自动填充X 我试着写下面的代码,但它不工作的所有时间,只是偶尔出现,有人可以帮我这个,请 Private Sub Worksheet_Change(ByVal Target As Range) 'MsgBox Target.Address If Not Application.Intersect(Range("B1:B100"), R

我想编写一个VBA代码,应用于excel中的
1000
行。在每一行中,一旦我将列
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

@艾登——以下是你的问题的症结所在:

这是矛盾的

您说您希望代码应用于“1000” “excel中的行”,但您的代码仅引用100行(“B1:B100”)

您说希望它在“G列”中的单元格更改时触发sub—— 但是您的代码引用了B列

因此,人们很难理解你的想法 意图真的是

你的代码应该被格式化为代码——我的意思是 输入问题,突出显示所有代码,然后选择{}to 标记为这样

话虽如此,我会给你一个解决方案,假设你确实接受了@horst的建议并阅读了

当任务如此简单时,您不需要从私有子系统中调用子系统。假设您指的是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

是的,有,但首先请花点时间阅读,还记得如果用户在say
G25:G35
中粘贴
No
,如果你想在所有这些行中粘贴
X
,那么你也必须以不同的方式处理:)@Siddharth Rout-链接中的精彩提示!我现在还不会修改答案中的代码,我会等着看艾登是否会恢复原样。希望他们能像我一样关注你的链接并学到一些东西。@kevin9999哦,我的评论不是针对你的答案的,所以不需要修改,因为我发布了一个链接。我刚刚给了艾登一个链接,以便进一步阅读。:)