我正在尝试复制不同工作簿中的单元格内容,但希望用户能够通过在当前工作簿的单元格中键入单元格的名称来指定要启动的单元格(即宏代码在。)
(顺便说一下,请原谅这个问题的基本性质以及我在词汇方面的任何明显错误;我是新手在尝试这个!)
我已经提出了以下代码,但是得到了“运行时错误'91':对象变量或者没有设置块变量”消息。
(请注意,我还使用了用户输入来引用不同的工作簿。这部分有效。)
Sub OpenWorkBook()
Dim Src As Workbook
Set Src = Workbooks.Open(Range("B3"))
Dim StrtCell As String
StrtCell = Range("B4")
Src.Sheets("Sheet1").Range(StrtCell).Copy
ThisWorkbook.Activate
Range("A6").PasteSpecial
End Sub
非常感谢任何帮助!
答案 0 :(得分:1)
最好始终使用明确的工作表对象限定您的Range()
调用,否则他们将使用当时正在发生的任何活动表。
当特定行运行时,依赖某些特定工作表处于活动状态会使代码变得脆弱且难以调试。
Sub OpenWorkBook()
Dim Src As Workbook
Dim StrtCell As String
Dim sht as Worksheet
Set sht = Activesheet
Set Src = Workbooks.Open(sht.Range("B3"))
StrtCell = sht.Range("B4")
Src.Sheets("Sheet1").Range(StrtCell).Copy
ThisWorkbook.Activate
sht.Range("A6").PasteSpecial
End Sub