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

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

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

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. 'MsgBox Target.Address
  3. If Not Application.Intersect(Range("B1:B100"), Range(Target.Address)) Is Nothing Then
  4. Call Change_value
  5. End If
  6. End Sub
  7. Sub Change_value()
  8. If ActiveCell.Value = "No" Then
  9. Cells(ActiveCell.Row, 4).Value = "Ok"
  10. End If
  11. End Sub

字符串

vxqlmq5t

vxqlmq5t1#

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

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

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

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Not Intersect(Range("G1:G1000"), Target) Is Nothing Then
  3. If Target.Rows.Count > 1 Then Exit Sub
  4. If Target.Value = "No" Then
  5. Range(Target.Offset(0, 1), Target.Offset(0, 19)).Value = "X"
  6. End If
  7. End If
  8. End Sub

字符串

展开查看全部

相关问题