【问题标题】:Macro to copy sheets into workbook stops after one sheet将工作表复制到工作簿中的宏在一张工作表后停止
【发布时间】:2016-12-16 18:49:52
【问题描述】:

我有一个加快计算速度的工作簿(长话短说)我创建了一个宏来将三张工作表复制到另一个文件中,然后另一个宏将它们复制回来。

要复制的宏工作正常,但是复制回一张纸后要复制的宏会停止。

我在 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

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

非常感谢任何帮助。

【问题讨论】:

  • 宏在一张纸后就停止了,还是报错?
  • 嗨蒂姆,谢谢你的问题。宏只是停止,没有错误。
  • 如果您一次复制所有三张纸会发生什么 - StorageWbk.Sheets(Array("Sh A", "Sh B", "Sh C")).Copy After:=ThisWkb.Sheets(ThisWkb.Sheets.Count)
  • 您的工作簿中有隐藏的工作表吗?您也可以将要复制的工作表索引设置为 1 以进行测试吗?
  • 您应该将其发布为答案。

标签: vba excel


【解决方案1】:

在这里直接引用 YowE3K 和 nbayly 给出来自 cmets 的正确答案(我不得不寻找它):

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多