excel - Excel VBA - 复制粘贴选项卡导致错误
问题描述
我正在编写一个宏来在文件中创建一个新选项卡,命名它,然后从现有模板选项卡中复制它。这样做时,会出现一个弹出框,搜索标题为 "Update values: wbname.xlsm" 的文件,然后我必须取消该文件。我不确定为什么会发生此错误(尽管该选项卡使用许多间接公式,因为它的价值),但如果有说明如何防止此弹出框,或如何将其关闭到代码中,那d 会很有帮助。
此外,我添加了第二个复制粘贴部分,因为最初没有通过列宽,但这也会导致运行时错误 1004 说“所有合并的单元格需要具有相同的大小。如果有更好的方法来复制这个,我会很感激,但否则我想我会做“下一个错误恢复”。
这是代码:
TabName = InputBox("Please enter your testing date?")
ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)).Name = TabName
Sheets("Template").Range("A1:BZ300").Copy Destination:=Sheets(TabName).Range("A1")
Sheets("Template").Range("A1:BZ300").Copy
With Sheets(TabName).Range("A1")
.PasteSpecial xlPasteColumnWidths
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
End With
Calculate
解决方案
我将假设 A1:BZ300 是模板工作表的整个使用范围。在这种情况下,只需复制整个模板工作表并将公式解析为其值。
您可以在操作期间使用 UpdateLinks = xlUpdateLinksNever 暂时挂起。
Dim tabName As String, oldUL As Long
tabName = InputBox("Please enter your testing date?")
With ThisWorkbook
oldUL = .UpdateLinks
.UpdateLinks = xlUpdateLinksNever
.Worksheets("template").Copy After:=.Worksheets(.Worksheets.Count)
With .Worksheets(.Worksheets.Count)
.Name = tabName
.UsedRange.Cells = .UsedRange.Cells.Value
.Cells(1).Select
End With
.UpdateLinks = oldUL
End With
推荐阅读
- r - 使用 dplyr 编程:使用胶水语法重命名带有变量的列
- php - 这个 SHA256 散列公式是否正确?
- azure - AuthorizationFailed 未知主体
- date - 如何从返回视图中隐藏日期时间?
- r - How to fill histogram by different columns?
- python - 这在 Python 脚本中意味着什么?
- azure - 如何克服 ACL 和防火墙的这个错误?
- java - 最少的参数类型
- vue.js - vue在for循环中绑定html数据属性
- python - 我得到 PermissionError (Errno 13) 权限被拒绝为“Hello World”项目创建可执行文件