我正在使用Worksheet_SelectionChange事件,在该事件中,我必须获取当前行号并将其用于特定事件。
我必须获取行号并将其存储在变量中,这样我才能将其用于特定事件。
我在“ C”列中有一个下拉列表(“是/否”,“真/假”,“单身”,“多个”)。
•如果用户选择“是/否”,则需要在“ D”列中选择一个“ True”选项。
•如果用户在“ C”列中选择“多个”,则用户需要在“ D”列中至少选择2个“ True”选项,以此类推以进行其他选择...
•如果用户未在“ D”列中选择适当的选项,它将弹出警告消息,直到用户不会选择适当的选项。
这是我的代码:
我实现了上面提到的结果,但是每次必须提及行号时,我的代码都是静态的。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
rw = 10
rng1 = rw + 1
rng2 = rw + 4
If Worksheets("Question paper").Range("D" & rw).Value = "Multiple Choice/ Multiple Answer" And _
WorksheetFunction.CountIf(Range("E" & rng1 & ":" & "E" & rng2), "TRUE") < 2 Then
MsgBox "Select at least 2 ""TRUE"" option"
' for Multiple Choice/Single Answer
' if user select more than 1 answer
ElseIf Worksheets("Question paper").Range("D" & rw).Value = "Multiple Choice/Single Answer" And _
WorksheetFunction.CountIf(Range("E" & rng1 & ":" & "E" & rng2), "TRUE") > 1 Then
MsgBox "Select only 1 ""TRUE"" option"
End If
我期望有一个动态的解决方案,以便可以在整个工作表中使用它。无需为特定范围的行分配变量。
答案 0 :(得分:1)
如果仅需要行号,这可能会有所帮助:
currentRowNumber = Range("A1").Row
上面的代码应将行号分配给变量。除了Range(“ A1”)之外,您可以放任何东西,例如:
currentRowNumber = Target.Row