gpt4 book ai didi

VBA - 运行时错误 1004 'Application Defined or Object Defined Error'

转载 作者:行者123 更新时间:2023-12-02 08:55:49 24 4
gpt4 key购买 nike

我有一个 Excel 文档,它在第一次运行时将模板工作表复制到新工作表中。遵循此模板的任何其他工作表都会附加到新创建的工作表中。

我在这部分代码的标题中收到错误:

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 语句为 true(单元格 = 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

但在第二次时,它完全失败,并出现运行时错误 1004“应用程序定义或对象定义错误”。如果有任何帮助,我将不胜感激。

最佳答案

您的单元格对象未完全限定。您需要在单元格对象之前添加一个DOT。例如

With Worksheets("Cable Cards")
.Range(.Cells(RangeStartRow, RangeStartColumn), _
.Cells(RangeEndRow, RangeEndColumn)).PasteSpecial xlValues

同样,完全限定所有 Cells 对象。

关于VBA - 运行时错误 1004 'Application Defined or Object Defined Error',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20601805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com