Sub Worksheet_Change(ByVal Target As Range)
Dim RR As Range, N As Long, v As Variant
Set RR = Intersect(Target, Range("A2"))
If RR Is Nothing Then Exit Sub
v = Range("A2").Text
N = Cells(Rows.Count, "A").End(xlUp).Row + 1
Application.EnableEvents = False
Range("A" & N).Value = v
Application.EnableEvents = True
End Sub
Sub B_Worksheet_Change(ByVal Target As Range)
Dim TT As Range, Z As Long, v As Variant
Set TT = Intersect(Target, Range("B2"))
If TT Is Nothing Then Exit Sub
A = Range("B2").Text
Z = Cells(Rows.Count, "B").End(xlUp).Row + 1
Application.EnableEvents = False
Range("B" & Z).Value = A
Application.EnableEvents = True
End Sub
附件是 Excel 电子表格和 VBA 代码的照片。我可以复制从“代理名称”下的 A 列第 2 行收到的输入,以自动保存到“其透视列下方的主列表”中。
我希望 Excel 自动复制代理下收到的新输入。交易类型、代理电子邮件地址、电话号码和房产地址自动保存为下面的内存列表。
Worksheet_Change 似乎是针对一个变量输入更改,我如何跟踪具有不同最终参数的多个变量。
本质上,我希望将第 2 行中输入的所有新变量保存在第 11 行及其下方...并创建已保存输入的列表。
谢谢您的帮助,顺便说一句,我是 VBA 编码新手。
我尝试了各种故障排除,但我对 VBA 很陌生,似乎无法弄清楚。我还加入了自动化 Discord 以获得额外帮助,并用谷歌搜索了这个问题。
你可以这样做:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, c As Range
Set rng = Application.Intersect(Target, Me.Range("A2:E2")) 'check range of interest
If rng Is Nothing Then Exit Sub 'exit if no updates in row2
For Each c In rng.Cells 'loop all affected cells
If Len(c.Value) > 0 Then 'cell has any value?
'add the value to the list below
Me.Cells(Rows.Count, c.Column).End(xlUp).Offset(1) = c.Value
End If
Next c
End Sub