我正在编写一个宏,以在文件中创建一个新标签页,对其进行命名,然后从现有的模板标签页中进行复制。这样做时,会出现一个弹出框,搜索标题为“ 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
答案 0 :(得分:0)
我将假设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