Excel宏根据用户选择自动更新单元格

时间:2017-12-14 22:18:19

标签: excel vba excel-vba

我正在尝试编写一个更新4 Cell的宏,如果用户选择" Mailing"来自Cell A1。如果用户选择" Mailing"在A1中,然后自动将A2,A3,A4和A5更新为B1中的值。如果用户选择" Mailing"以外的其他内容,则所有四个单元格应为空白,用户应能输入任何值。任何帮助表示赞赏。感谢

我已经走到了这一步,但VBA不是我的事情:

Sub test()
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Value = "Mailing" Then
        Range("A2:A4").Value = "B1"
    End If
End Sub

2 个答案:

答案 0 :(得分:0)

正如其他人所提到的,你只需要把它放到Sub Worksheet_Change。请注意,如果您在单元格A1中“键入”该单词,则在“输入”后您将实际处于A2中。

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1").Value = "Mailing" Then
        Range("A2:A4").Value = "B1"
    End If
End Sub

答案 1 :(得分:0)

问题是您正在尝试更改代码中某些单元格的值,因此代码应该自行运行。您需要在更改单元格值之前关闭事件,然后将其重新打开:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" And Target.Value = "Mailing" Then
        Application.EnableEvents = False
        Range("A2:A4").Value = "B1"
        Application.EnableEvents = True
    End If
End Sub