Word VBA Макросы: Как скопировать данные из экселя (Excel) в переменные?

Автор Rengame113, 22 мая 2018, 17:17

Rengame113

У меня есть макрос, который я запускаю из ворда. Как можно с помощью этого макроса скопировать данные из экселя в переменные?

Администратор

Макрос сделан так, что можно его запускать из ворда и при этом можно работать с программой "Excel".
Макрос копирует данные из эксель-файла в две переменные.
В пункте 2 укажите полное имя (путь + имя) эксель-файла.

Макрос
Sub макрос()

    Dim ex As Object, bk_src As Object, sh_src As Object
    Dim name1 As String, data1 As String
   
   
    '1. Запуск программы "Excel" и присваиваем программе "Excel" имя "ex".
        ' Далее в коде будем обращаться к программе "Excel" по имени "ex".
        ' Так удобнее писать и читать код.
    Set ex = VBA.CreateObject(Class:="Excel.Application")
   
    '2. Открываем эксель-файл и присваиваем эксель-файлу имя "bk_src".
        ' Далее в коде будем обращаться к эксель-файлу по имени "bk_src".
    Set bk_src = ex.Workbooks.Open(FileName:="C:\Users\User\Desktop\Книга1.xlsb", ReadOnly:=True)
   
    '3. Присваиваем имя "sh_src" первому листу. Далее в коде будем обращаться
        ' к листу по имени "sh_src".
    Set sh_src = bk_src.Worksheets(1)
   
    '4. Копируем данные из листа в переменные.
    name1 = sh_src.Range("A1").Value
    data1 = sh_src.Range("A2").Value
   
    '5. Закрываем эксель-файл без сохранений. Иногда при открытии эксель-файла могут
        ' происходить какие-то действия, например, пересчёт формул, и даже если вы ничего
        ' не делаете, эксель может спросить, нужно ли сохранять изменения.
    bk_src.Close SaveChanges:=False
   
    '6. Закрываем программу "Excel".
    ex.Quit
   
    '7. Здесь в наших переменных находятся данные из эксель-файла.

End Sub
[свернуть]