Форум по VBA, Excel и Word

VBA, Excel => VBA, макросы в Excel => Тема начата: Amator от 25 апреля 2014, 21:18

Название: Сумма данных со всех листов.
Отправлено: Amator от 25 апреля 2014, 21:18
Здравствуйте. Помогите с макросом. Необходимо просуммировать некий диапазон всех однотипных листов одной (закрытой)  книги , и поместить эту сумму в тот жэ диапазон на активный лист другой книги по клику кнопки. Обе книги в папке на рабочем столе (но в папке имеются и другие книги). Может есть какой пример.
Название: Re: Сумма данных со всех листов.
Отправлено: Администратор от 25 апреля 2014, 21:22
Amator, чтобы взять данные из закрытого файла, самый простой способ - открыть файл.
Сделаете с файлом нужные действия и закроете.
Название: Re: Сумма данных со всех листов.
Отправлено: Amator от 25 апреля 2014, 21:27
Подскажите пример макроса.
Название: Re: Сумма данных со всех листов.
Отправлено: Администратор от 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
[свернуть]
Название: Re: Сумма данных со всех листов.
Отправлено: Amator от 25 апреля 2014, 21:55
Выдает ошыбку. Где  у меня ошибка ? Посмотрите , пожалуйста!

[вложение удалено администратором]
Название: Re: Сумма данных со всех листов.
Отправлено: Администратор от 25 апреля 2014, 22:02
Amator, здесь нужно указывать полное имя файл: путь + имя файла:
Set bkOpen = Workbooks.Open(Filename:=strFullFileName)
Название: Re: Сумма данных со всех листов.
Отправлено: Amator от 25 апреля 2014, 22:22
Исправил. Теперь ошика в строке:    Debug.Print shOpen.Range("B2:M15").Value
Название: Re: Сумма данных со всех листов.
Отправлено: Администратор от 25 апреля 2014, 22:27
Amator, в Debug.Print можно записать данные только из одной Excel-ячейки.
Поместите данные из "Range("B2:M15").Value" в другое место, например, в ячейки Excel-листа.