0

我正在使用 VB 为 Excel 中的两个不同工作表运行多个宏。

Sheet1:我可以同时运行多个宏:

Sub option2()
    CreateTable2
    HeaderChange1
    HeaderChange2
    HeaderChange3
    HeaderChange4
End Sub

表 2:我可以同时运行多个宏(这显示了表 1 中的宏创建的新数据):

Sub option1()
    ClearCols
    CreateTable
    MoveColumns
End Sub

有什么方法可以运行一个宏来一次完成所有功能 - 而不是单独运行上述两个?

4

2 回答 2

0

首先,您应该将所有活动表引用替换为特定工作表,将工作表信息添加到没有工作表信息的所有范围,例如

activesheet.range("A1").copy变成Sheets("Sheet1").range("A1").copy

range("A1").copy变成Sheets("Sheet1").range("A1").copy

然后,您可以组合所有宏或在一个组合宏中运行它们:

Sub RunAllMacros
CreateTable2
HeaderChange1
HeaderChange2
HeaderChange3
HeaderChange4
ClearCols
CreateTable
MoveColumns
End Sub

如果您仍然离开活动工作表,您可以更改中间的选择(尽管应该避免在 VBA 中选择,除非您希望用户看到选择更改)

Sub RunAllMacros

CreateTable2
HeaderChange1
HeaderChange2
HeaderChange3
HeaderChange4

Sheets("Sheet2").select

ClearCols
CreateTable
MoveColumns
End Sub
于 2013-08-14T16:15:46.207 回答
0

在我看来,您可以创建一个新宏来运行这两个选项......

Sub bothOptions()
    Call Option1
    Call Option2
End Sub

这是你需要的吗?

于 2013-08-14T16:26:27.243 回答