我已经构建了一个宏,它将复制一个工作簿中的所有工作表并将其粘贴到另一个工作簿中。到目前为止,它工作得很好,但是当宏正在复制和粘贴每个工作表时,excel会弹出一个弹出窗口,其中显示"名称'(在此处插入任何名称)'已经存在。单击是以使用该版本的名称,或单击否以重命名版本'(在此处插入任何名称)'你正在移动或复制。"
对于我复制并粘贴到新工作簿的工作表中具有相同名称的多个命名项,它会弹出很多(大约30次!)。是否有一个宏将自动选择"是"所以我不必一遍又一遍地选择是吗?我已经列出了将所有工作表复制并粘贴到我的另一个工作簿中的宏,以供参考。
Sub Copy_Sheets()
Dim b1 As Workbook, b2 As Workbook
Dim sh As Worksheet
Workbooks.Open Filename:="C:\Users\Documents\Test.xlsx"
Set b1 = ActiveWorkbook
Workbooks.Open Filename:="C:\Users\Experiment.xlsx"
Set b2 = ActiveWorkbook
For Each sh In b2.Sheets
sh.Copy After:=b1.Sheets(b1.Sheets.Count)
Next sh
End Sub
答案 0 :(得分:1)
您可以插入:
Application.DisplayAlerts = False
复制前,
Application.DisplayAlerts = True
后。
这样您就可以在复制前关闭警报,并在之后将其打开。