Автор Тема: Сумма данных со всех листов.  (Прочитано 1692 раз)

Amator

  • Гость
Сумма данных со всех листов.
« : 25 Апрель 2014, 21:18 »
Здравствуйте. Помогите с макросом. Необходимо просуммировать некий диапазон всех однотипных листов одной (закрытой)  книги , и поместить эту сумму в тот жэ диапазон на активный лист другой книги по клику кнопки. Обе книги в папке на рабочем столе (но в папке имеются и другие книги). Может есть какой пример.

Онлайн Администратор

  • Administrator
  • Сообщений: 1657
Re: Сумма данных со всех листов.
« Ответ #1 : 25 Апрель 2014, 21:22 »
Amator, чтобы взять данные из закрытого файла, самый простой способ - открыть файл.
Сделаете с файлом нужные действия и закроете.

Amator

  • Гость
Re: Сумма данных со всех листов.
« Ответ #2 : 25 Апрель 2014, 21:27 »
Подскажите пример макроса.

Онлайн Администратор

  • Administrator
  • Сообщений: 1657
Re: Сумма данных со всех листов.
« Ответ #3 : 25 Апрель 2014, 21:35 »
Макрос
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

  • Гость
Re: Сумма данных со всех листов.
« Ответ #4 : 25 Апрель 2014, 21:55 »
Выдает ошыбку. Где  у меня ошибка ? Посмотрите , пожалуйста!

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

Онлайн Администратор

  • Administrator
  • Сообщений: 1657
Re: Сумма данных со всех листов.
« Ответ #5 : 25 Апрель 2014, 22:02 »
Amator, здесь нужно указывать полное имя файл: путь + имя файла:
Set bkOpen = Workbooks.Open(Filename:=strFullFileName)

Amator

  • Гость
Re: Сумма данных со всех листов.
« Ответ #6 : 25 Апрель 2014, 22:22 »
Исправил. Теперь ошика в строке:    Debug.Print shOpen.Range("B2:M15").Value

Онлайн Администратор

  • Administrator
  • Сообщений: 1657
Re: Сумма данных со всех листов.
« Ответ #7 : 25 Апрель 2014, 22:27 »
Amator, в Debug.Print можно записать данные только из одной Excel-ячейки.
Поместите данные из "Range("B2:M15").Value" в другое место, например, в ячейки Excel-листа.