1

我一直在努力寻找一种使用 VBA 一次复制多张工作表的方法。问题是我需要他们保持彼此的相对引用。例如:

I have 3 sheets:
1. Print                      (formulas point to TV - Input)
2. Print - Input
3. Print - plan               (formulas point to TV - Input)

I need to copy them so that all formulas point to their new respective sheets.

1. Print (2)                  (formulas point to Print - Input (2))
2. Print - Input (2)
3. Print - plan (2)           (formulas point to Print - Input (2))

这很容易通过 Ctrl 手动完成。+ 将工作表拖到新位置。但是我如何在 VBA 中做到这一点?

编辑: 名称“打印”设置为运行时。所以它也可以是电视或广播。它是从字符串中传递过来的。

任何帮助表示赞赏!

4

1 回答 1

2

尝试这样的事情:

Sheets(Array("Print", "Print - input", "Print - plan")).Copy After:=Sheets(Sheets.Count)

已编辑 -带有索引参考

Sheets(Array(1, 2, 3)).Copy After:=Sheets(Sheets.Count)

使用变量引用:

Dim sht1 as String, sht2 as String, sht3 As String
sht1 = "Print"
sht2 = "Print - input"
sht3 = "Print - plan"
Sheets(Array(sht1, sht2, sht3)).Copy After:=Sheets(Sheets.Count)

使用动态数组(这里是 3 个静态元素,但也可以是任何动态数组):

Dim arrSHT as Variant
arrSHT = array("Print", "Print - input", "Print - Plan")
Sheets(arrSHT).Copy After:=Sheets(Sheets.Count)
于 2013-04-04T11:39:31.320 回答