【发布时间】:2012-10-24 17:55:26
【问题描述】:
我正在尝试运行一个在多个工作表上执行功能的宏。假设我在工作表 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
它有效...但只有当我在正确的工作表中执行特定功能时它才有效。
【问题讨论】:
-
而不是像
sh1、sh2等不可读的变量名称。为什么不称它们为有用和透明的东西,如shtBrand、shtCurrentWeek等。工作中的一个人也是这样做的sh1sh2业务,当我们尝试阅读他的代码时,它会让每个人都抓狂。 -
@Jean-FrançoisCorbett 是的,这实际上是个好主意。起初我没有这样做的原因是因为在我的业务中,没有人知道如何编码。我试图自动化的这项任务已经手动完成了大约 2-3 年。这很荒谬,但这是个好主意!谢谢。
标签: vba excel excel-2007