将工作表复制到工作簿的宏在一张工作表后停止

Boo*_*mer 5 excel vba excel-vba

我有一个工作簿,在那里加速计算(长篇故事)我创建了一个宏,将三个工作表复制到另一个文件,然后另一个宏将它们复制回来.

要复制的宏工作正常,但是在复制到一个工作表后复制的宏将暂停.

我在StackOverflow中搜索并发现了一些类似的问题,但找不到有效的答案.一篇文章认为它与Office版本有关,一个与Shift键问题有关.

这是代码:

Application.Calculation = xlCalculateManual
Application.ScreenUpdating = False
Application.DisplayAlerts = True
Application.EnableEvents = False

'
'   Set up the  workbooks
'
Set ThisWkb = ThisWorkbook
Fname = Application.GetOpenFilename( _
    fileFilter:="Excel Macro Files, *.xlsm", _
    Title:="Select the Storage File", _
    MultiSelect:=False)
Set StorageWbk = Workbooks.Open(Fname)
'   
 MsgBox ("Beginning process - please click ok to any macro warning - you will see a confirmation when complete")


StorageWbk.Sheets("Sh A").Copy After:=ThisWkb.Sheets(ThisWkb.Sheets.Count)
StorageWbk.Sheets("Sh B").Copy After:=ThisWkb.Sheets(ThisWkb.Sheets.Count)
StorageWbk.Sheets("Sh C").Copy After:=ThisWkb.Sheets(ThisWkb.Sheets.Count)

StorageWbk.Close
Run Code Online (Sandbox Code Playgroud)

我有时会发现,如果我然后删除新工作表并再次运行宏,它有时可以工作并读取所有三个工作表,但有时也不会.

任何帮助是极大的赞赏.

Pie*_*e44 2

直接引用 YowE3K 和 nbayly 来从评论中给出正确答案(我必须寻找它):

取消隐藏隐藏的工作表并使用以下命令一次复制三个链接:

StorageWbk.Sheets(Array("Sh A", "Sh B", "Sh C")).Copy After:=ThisWkb.Sheets(ThisWkb.Sheets.Count)
Run Code Online (Sandbox Code Playgroud)