【发布时间】:2014-05-21 14:46:48
【问题描述】:
我是编写 VBA 代码的新手,遇到了一点问题。
我们目前正在进行一项研究,我们将从参与者那里收到问卷调查。有很多“如果问题 2 是,请回答问题 3,如果不是,请继续问题 4。一旦我们在 excel 中输入此数据,每个参与者的答案都会得到一列。因此,我们希望在 VBA 代码中写入一列的条件应用到其余的列,我不能让它工作。
下面提供了适用于 B 列的代码。我们如何应用此代码使其适用于所有列? IE。我们如何先在 B 栏中提供参与者 A 的答案,然后在填写参与者 B 在 C 栏中的答案时重新开始?我尝试了几种方法,例如循环,“对于每一列..”,但无法将它们放在一起。
非常感谢一些帮助!
谢谢。
艾琳
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("B3") = 3 Then
Rows("4:4").EntireRow.Hidden = False
Else
Rows("4:4").EntireRow.Hidden = True
End If
If Range("B5") = 1 Then
Rows("6:6").EntireRow.Hidden = False
Else
Rows("6:6").EntireRow.Hidden = True
End If
If Range("B7") = 1 Then
Rows("8:8").EntireRow.Hidden = False
Else
Rows("8:8").EntireRow.Hidden = True
End If
If Range("B9") = 1 Then
Rows("10:10").EntireRow.Hidden = False
Else
Rows("10:10").EntireRow.Hidden = True
End If
If Range("B18") = 1 Then
Rows("19:21").EntireRow.Hidden = False
Else
Rows("19:21").EntireRow.Hidden = True
End If
If Range("B19") = 6 Then
Rows("20:20").EntireRow.Hidden = False
Else
Rows("20:20").EntireRow.Hidden = True
End If
End Sub
【问题讨论】:
-
您正在尝试在 Excel 电子表格中编写调查问卷?对于这项工作来说,这似乎是一个非常糟糕的工具。您如何填写这份问卷?卡蒂?邮寄/亲自/拦截?在线?
-
您需要提供有关此工作表结构的更多信息。行/列是如何排列的?完全不清楚您要做什么——每个受访者记录是否都有新的一行?还是每个问题都是一行?等屏幕截图/图像会有所帮助,您可以上传到 IMGUR.COM 并在此处发布链接以帮助说明您的问题。
标签: excel vba show-hide multiple-columns