打开并修改另一个工作簿中的值


Sub abrirotroworkbook()
Dim y As Workbook ' a donde se va a pegar
Dim vals As Variant
Set y = Workbooks.Open("C:Pathfilename.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"下标超出范围

我不知道问题出在哪里。

正如@Storax所说,您的变量vals不是打开工作簿,而是创建一个数组。只复制两个单元格不需要一个数组。您必须循环遍历数组。下面的代码是基本的。如果您是从ThisWorkbook(您的代码所在的工作簿(复制,它将起作用。如果它是另一个工作簿,则可以创建另一个变量来打开它,并使用该变量而不是ThisWorkbook

Dim wb1 As Workbook 'the source workbook
Set wb1 = Workbooks.Open("C:Pathsourcefilename.xlsm") 'change name and path as required
Dim wb2 As Workbook 'the destination workbook
Set wb2 = Workbooks.Open("C:Pathdestinationfilename.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`

相关内容

最新更新