使用下拉列表填充单元格

时间:2015-03-04 14:57:45

标签: excel vba

我正在开发一个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

1 个答案:

答案 0 :(得分:0)

如果您选择多个单元格,则Target范围内有多个行和/或列,因此引用.Column.Row的语句将不明确

如果将此代码包装在循环范围内的每个单元格的循环中,它应该更新整个范围,而不仅仅是第一个单元格。