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

时间:2018-11-10 15:34:04

标签: excel vba excel-vba

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'下标超出范围

我不知道问题出在哪里。

1 个答案:

答案 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`