1
我是一个绝对的VBA noob,但考虑到我的工作需求不断变化,最近我不得不接近编码领域,因为我们正在尝试自动执行相当多的任务。我已经是下面这段代码:VBA - 组合工作表变更
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pi As PivotItem
Dim strField As String
strField = "Manager"
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
If Target.Address = Range("D1").Address Then
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
With pt.PageFields(strField)
For Each pi In .PivotItems
If pi.Value = Target.Value Then
.CurrentPage = Target.Value
Exit For
Else
.CurrentPage = "(All)"
End If
Next pi
End With
Next pt
Next ws
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
我想这跟下面的代码合并:
Range("AC22:AC60").Copy Range("AF22:AF60")
Range("AL22:Al60").Copy Range("AN22:AN60")
Range("AU22:AU60").Copy Range("AW22:AW60")
但我只想范围复制如果D1范围在第一码变化。很显然,我想自动化,而不是将这些副本编码为宏,所以我请帮助我如何在这里一箭双雕。
我该如何结合?
大加赞赏,
我可能会误解你的问题,但你为什么不把复制代码放到If语句中呢? – RobK
那么,代码的主要目标是根据D1的值同步数据透视表,其次我也想要这个复制粘贴发生,但以这样的方式,不会干涉枢轴操作.. 当我尝试把它放在一起时,代码不会执行,因为有多个范围(我怀疑)。 – bomo123