Excel VBA pastelink运行时错误1004:应用程序定义或对象定义的错误
我试图创build从一个单元格到另一个单元格上的单元格的链接,但是当我运行它时,我得到此运行时错误:
应用程序定义或对象定义的错误。
这里是代码:
Worksheets(sheetFrom).Cells(fromRow, fromCol).Copy Worksheets(sheetTo).Cells(toRow, toCol).Select ActiveSheet.Paste Link:=True
我正在检查/从值,他们是正确的。
更新似乎是它导致问题的单元格select。
更新2当来源表单与表单相同时,没有问题。 我错过了什么?
您正在收到该错误,因为当您尝试粘贴时,工作表(sheetTo)不是活动工作表。
如果你添加一行到你的代码
Worksheets(sheetFrom).Cells(fromRow, fromCol).Copy Worksheets(sheetTo).Activate Worksheets(sheetTo).Cells(toRow, toCol).Select ActiveSheet.Paste Link:=True
有用。
编辑回复guitarthrower的回答:
粘贴链接,据我所知,只适用于Worksheet.Paste,而不是Range.Paste。 Worksheet.Paste将链接粘贴到活动单元格中。 虽然我同意你应该避免select,使用这种types的代码似乎需要它。
另一种select可能是创build公式而不是粘贴链接:
Worksheets(sheetTo).Cells(toRow, toCol).Formula = _ "=" & Worksheets(sheetFrom).Name & "!" & Worksheets(sheetFrom).Cells(fromRow, fromCol).Address
我尽量远离使用select。 它可能会在代码的stream程中引入问题,并使事情难以debugging。
为什么不尝试:
Worksheets(sheetFrom).Cells(fromRow, fromCol).Copy Worksheets(sheetTo).Cells(toRow, toCol).Paste Link:=True