открыть и изменить значение из другой книги - PullRequest
0 голосов
/ 10 ноября 2018
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 голосов
/ 10 ноября 2018

Как сказал @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`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...