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

标签 vba excel

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

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

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

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

非常感谢任何帮助。

最佳答案

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

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

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

关于vba - 将工作表复制到工作簿的宏在一张工作表后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41190702/

相关文章:

excel - VBA 代码中的多个 IF 语句可根据另一列从多列中提取不同的单元格值。

VBA Excel "Compile error: Object Required"

error-handling - 错误处理运行时错误不起作用

vb.net - Visual Studio 数组或列表框数据到 Excel 范围

vba - Excel VBA,for循环忽略隐藏行

vba - 如何检测带有(水平)合并单元格的 Word 表格?

Excel 360 VBA 更改数据透视表过滤器

arrays - VBA函数告诉机器不要显示某些变量

vba - 将来自不同工作簿(在 1 个文件中)的多个工作表合并到包含 1 个工作表的工作簿 "sheets1"

events - VBA - 通过用户定义的函数更新其他单元格