gpt4 book ai didi

选择范围时出现 VBA 运行时错误 1004 "Application-defined or Object-defined error"

转载 作者:行者123 更新时间:2023-12-01 16:52:30 25 4
gpt4 key购买 nike

我在选择范围时遇到错误 1004“应用程序定义或对象定义错误”的问题。

我仍然可以选择行(即 Rows("21:21").select)并选择同一工作簿的其他工作表中的范围。我不相信代码中存在错误。也许这是我不知道的一些设置?

我之前多次使用过完全相同的代码,但由于某种原因我无法使其在这个子中运行(我已经评论了错误发生的位置)...

Sub CopySheet1_to_PasteSheet2()

Dim CLastFundRow As Integer
Dim CFirstBlankRow As Integer

'Finds last row of content
Windows("Excel.xlsm").Activate
Sheets("Sheet1").Activate
Range("C21").Select
'>>>Error 1004 "Application-defined or Object-defined error" Occurs
Selection.End(xlDown).Select
CLastFundRow = ActiveCell.Row
'Finds first row without content
CFirstBlankRow = CLastFundRow + 1

'Copy Data
Range("A21:C" & CLastFundRow).Select
Selection.Copy
'Paste Data Values
Sheets("PalTrakExport PortfolioAIdName").Select
Range("A21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

'Bring back to top of sheet for consistancy
Range("A21").Select
Range("A1").Select
End Sub

我需要在复制时充分发挥想象力,因为行数会经常变化。同样,下面的代码之前已经使用过,没有错误...但在本例中却没有。

Dim CLastFundRow As Integer
Dim CFirstBlankRow As Integer

'Finds last row of content
Windows("Excel.xlsm").Activate
Sheets("Sheet1").Activate
Range("C21").Select
'>>>Error 1004 "Application-defined or Object-defined error" Occurs
Selection.End(xlDown).Select
CLastFundRow = ActiveCell.Row
'Finds first row without content
CFirstBlankRow = CLastFundRow + 1

最佳答案

也许您的代码位于 Sheet1 后面,因此当您将焦点更改为 Sheet2 时,找不到对象?如果是这种情况,只需指定您的目标工作表可能会有所帮助:

Sheets("Sheet1").Range("C21").Select

我不太熟悉 Select 的工作原理,因为我试图尽可能避免它:-)。您可以定义和操作范围而无需选择它们。另外,明确您引用的所有内容也是一个好主意。这样,当您从一张工作表或工作簿转到另一张工作表或工作簿时,您就不会迷失方向。试试这个:

Option Explicit

Sub CopySheet1_to_PasteSheet2()

Dim CLastFundRow As Integer
Dim CFirstBlankRow As Integer
Dim wksSource As Worksheet, wksDest As Worksheet
Dim rngStart As Range, rngSource As Range, rngDest As Range

Set wksSource = ActiveWorkbook.Sheets("Sheet1")
Set wksDest = ActiveWorkbook.Sheets("Sheet2")

'Finds last row of content
CLastFundRow = wksSource.Range("C21").End(xlDown).Row
'Finds first row without content
CFirstBlankRow = CLastFundRow + 1

'Copy Data
Set rngSource = wksSource.Range("A2:C" & CLastFundRow)

'Paste Data Values
Set rngDest = wksDest.Range("A21")
rngSource.Copy
rngDest.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Bring back to top of sheet for consistancy
wksDest.Range("A1").Select

End Sub

关于选择范围时出现 VBA 运行时错误 1004 "Application-defined or Object-defined error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17980854/

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