我正在尝试运行一个在多个工作表上执行功能的宏。假设我已经在工作表 4 上分配了宏按钮。我已经列出了我希望它逐步执行的功能:
1) 选择工作表 4 中的某些单元格并复制到工作表 4 中的相邻单元格。
2) 删除工作表 3 中的单元格区域。
3) 剪切工作表 2 中的单元格范围,然后将此单元格范围粘贴到工作表 3 中。
4) 从单独的工作簿中获取单元格范围并复制到工作表 2 中。(我知道这是一个完全不同的问题,因为工作簿是自动发布的,我必须找到一种方法来链接两者。)
5) 更新位于工作表 4 和工作表 3 中的数据透视表。
我希望获得有关前 3 个功能的帮助。我已将当前代码粘贴在下面。
Sub START()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim sh4 As Worksheet
Set sh1 = ActiveWorkbook.Sheets("Brand")
Set sh2 = ActiveWorkbook.Sheets("CurrentWeek")
Set sh3 = ActiveWorkbook.Sheets("PriorWeek")
Set sh4 = ActiveWorkbook.Sheets("Pivot")
sh4.Range("B29:B30").Select
Selection.Copy
sh4.Range("C29").Select
ActiveSheet.Paste
sh3.Range("A4:AC1000").Select
Selection.Delete
sh2.Range("A4:AC1000").Select
Selection.Copy
sh3.Range("A4").Select
ActiveSheet.Paste
End Sub
它有效......但只有当我在正确的工作表中执行特定功能时它才有效。
最佳答案
通过删除select
、selection
和activesheet
,您将能够使该工作表独立
Sub START()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim sh4 As Worksheet
Set sh1 = ActiveWorkbook.Sheets("Brand")
Set sh2 = ActiveWorkbook.Sheets("CurrentWeek")
Set sh3 = ActiveWorkbook.Sheets("PriorWeek")
Set sh4 = ActiveWorkbook.Sheets("Pivot")
sh4.Range("B29:B30").Copy sh4.Range("C29")
sh3.Range("A4:AC1000").Delete
sh2.Range("A4:AC1000").Copy sh3.Range("A4")
End Sub
关于跨多个工作表的 VBA 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13054960/