Сумма данных со всех листов.

Автор Amator, 25 апреля 2014, 21:18

Amator

Здравствуйте. Помогите с макросом. Необходимо просуммировать некий диапазон всех однотипных листов одной (закрытой)  книги , и поместить эту сумму в тот жэ диапазон на активный лист другой книги по клику кнопки. Обе книги в папке на рабочем столе (но в папке имеются и другие книги). Может есть какой пример.

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

Amator, чтобы взять данные из закрытого файла, самый простой способ - открыть файл.
Сделаете с файлом нужные действия и закроете.

Amator

Подскажите пример макроса.

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

Макрос
Sub Макрос1()
   
    Const strFullFileName As String = "Книга Microsoft Office Excel 2007.xlsx"
   
    Dim bkOpen As Excel.Workbook
    Dim shOpen As Excel.Worksheet
   
   
    'Отключение обновления монитора, чтобы не мерцало.
    Application.ScreenUpdating = False
   
    'Открытие файла.
    Set bkOpen = Workbooks.Open(Filename:=strFullFileName)
   
    'VBA-наименование листа, с которым будет работать макрос.
    Set shOpen = bkOpen.Worksheets(1)
   
    'Взятие данных из листа.
    'Вывод данных из ячейки в View - Immediate Window.
    Debug.Print shOpen.Range("A1").Value
   
    'Закрытие файла без сохранения.
    bkOpen.Close SaveChanges:=False
   
    'Включение обновления монитора.
    Application.ScreenUpdating = True
   
End Sub
[свернуть]

Amator

Выдает ошыбку. Где  у меня ошибка ? Посмотрите , пожалуйста!

[вложение удалено администратором]

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

Amator, здесь нужно указывать полное имя файл: путь + имя файла:
Set bkOpen = Workbooks.Open(Filename:=strFullFileName)

Amator

Исправил. Теперь ошика в строке:    Debug.Print shOpen.Range("B2:M15").Value

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

Amator, в Debug.Print можно записать данные только из одной Excel-ячейки.
Поместите данные из "Range("B2:M15").Value" в другое место, например, в ячейки Excel-листа.