Sub abrirotroworkbook()
Dim y As Workbook ' a donde se va a pegar
Dim vals As Variant
Set y = Workbooks.Open("C:Path\filename.xlsm")
'Now, copy what you want from x:
vals = Sheet12.Range("A3:B3").Value
'Now, paste to y worksheet:
y.Sheets("Sheet1").Range(A5).Value = vals
End Sub
当我运行此代码时,它将我已打开的书的信息保存在变量vals
中,然后它打开了另一个工作簿,但是当尝试将其粘贴时,会出现以下错误:>
运行时错误'9'下标超出范围
我不知道问题出在哪里。
答案 0 :(得分:0)
正如@Storax所说,变量vals
不是打开工作簿而是创建数组。
您只需要复制两个单元格就不需要数组。您将不得不遍历数组。下面的代码是基本的。如果您是从ThisWorkbook
(您的代码所在的工作簿)中复制,则它将起作用。如果是另一本工作簿,则可以创建另一个变量以将其打开,然后使用该变量代替ThisWorkbook
。
Dim wb1 As Workbook 'the source workbook
Set wb1 = Workbooks.Open("C:Path\sourcefilename.xlsm") 'change name and path as required
Dim wb2 As Workbook 'the destination workbook
Set wb2 = Workbooks.Open("C:Path\destinationfilename.xlsm") 'change name and path as required
wb2.Sheets("Sheet1").Range("A5:B5").Value = ThisWorkbook.Sheets("Sheet12").Range("A3:B3").Value 'replace ThisWorkbook with `wb1`