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

时间:2016-12-16 18:49:53

标签: 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

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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

取消隐藏您的隐藏表格,并使用以下方法一次复制三个链接:

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