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