我正在开发一个VBA应用程序,当我从下拉列表中选择一个选项(使用数据验证创建)时,应自动填充几列。如果我从下拉列表中为每个单元格单独选择一个选项,它工作正常。但是,如果我将选项拖到几行上,则只会填充顶行的数据,而其余行的数据则不会填充。我该如何解决这个问题?这是我在Worksheet_Change函数下的代码
Private Sub Worksheet_Change(ByVal Target As range)
If Target.Column = 22 Then
ThisRow = Target.Row
On Error GoTo ExitSub
If Target.Value = "E" Then
range("W" & ThisRow).Value = range("R" & ThisRow).Value
range("X" & ThisRow).Value = ""
On Error GoTo 0
ElseIf Target.Value = "T" Then
range("W" & ThisRow).Value = ""
range("X" & ThisRow).Value = range("S" & ThisRow).Value
ElseIf Target.Value = "M" Then
range("W" & ThisRow).Value = ""
range("X" & ThisRow).Value = ""
ElseIf Target.Value = "N" Then
range("W" & ThisRow).Value = 0
range("X" & ThisRow).Value = 0
ElseIf Target.Value = "R" Then
range("W" & ThisRow).Value = range("T" & ThisRow).Value
range("X" & ThisRow).Value = range("U" & ThisRow).Value
End If
End If
Exit Sub
ExitSub:
Exit Sub
End Sub
答案 0 :(得分:0)
如果您选择多个单元格,则Target
范围内有多个行和/或列,因此引用.Column
和.Row
的语句将不明确
如果将此代码包装在循环范围内的每个单元格的循环中,它应该更新整个范围,而不仅仅是第一个单元格。