我有一个Excel文档,它会在第一次运行时将模板工作表复制到新工作表中。任何遵循此模板的更多工作表都会附加到新创建的工作表。VBA - 运行时错误1004'应用程序定义或对象定义错误'
我得到标题中的错误在这部分代码:
If Worksheets("User Configuration").Cells(9, 15).Value = 1 Then
Worksheets("Cable Cards Template").Range("A1:J33").Copy
With Worksheets("Cable Cards")
**.Range(Cells(RangeStartRow, RangeStartColumn), Cells(RangeEndRow, RangeEndColumn)).PasteSpecial xlValues**
.Range(Cells(RangeStartRow, RangeStartColumn), Cells(RangeEndRow, RangeEndColumn)).PasteSpecial xlFormats
End With
Worksheets("Cable Cards Template").Shapes("Picture 1").Copy
Worksheets("Cable Cards").Paste Cells(RangeStartRow, RangeStartColumn)
Call Sheets.FormatCableCardRows
End If
基本上如果If
语句为真(小区= 1),然后在特定的片的范围应该被复制并将其粘贴到使用PasteSpecial
进行值和格式设置的范围内的新工作表中。之后,“新创建的”工作表应该将图像复制到模板的左上角单元格中,然后调用子例程来格式化新工作表的行。
我在With Worksheets("Cable Cards")
声明后的第一个.Range
调用中收到错误消息。我试着不使用With
声明,复制值,而不是直接糊等特殊奇怪的是,这将在第一次就通过创建新的工作表时运行:
If (RangeStartRow = 1) Then
Worksheets.Add().Name = "Cable Cards" ' Create new sheet with given name only on first cable card
Columns(1).ColumnWidth = 9.43
Columns(6).ColumnWidth = 11
Columns(10).ColumnWidth = 9
Call FormatForA5Printing("Cable Cards", 71)
End If
但第二次去,它完全失败,与Run Time Error 1004 'Application Defined or Object Defined Error'
。我会很感激任何帮助。
很好地发现。 +1 – hammus
就是这样,谢谢你,否则就永远不会发现它! – user3105671
+1人们经常发现由于不合格的范围导致错误的频率非常高。 –