Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2016, 17:30   #1
Morozeckiy
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 36
По умолчанию сумма из нескольких книг

Приветствую! Товарищи, подскажите, как решить два вопроса, не хватает опыта.

1.Есть книга в которую нужно собирать построчно инфу из одних и тех же ячеек, но разных книг. На каждую строчку свое кол-во книг(в этом и загвоздка)
Если кол-во книг известное, то вопрос я решаю так:

Код:
ActiveCell = Workbooks("1.xls").sheets(1).Cells(11,3) +Workbooks("2.xls").sheets(1).Cells(11,3)
Прекрасно помогает, но максимум может быть 20 книг и если я пропишу их все, то если не будет их открыто, макрос выдает ошибку, что неудивительно.
Или попробовать через If? если книга "1.хлс" открыта, то далее, если книга "2.хлс" открыта, то +"1.хлс" и т.д.?

2. второй вопрос идет за первым. для макроса я выбираю именно активную ячейку, потому что нужно самому определить строку. Но в этой строке помимо активной ячейки, данные нужно вставить и в еще пару соседних ячеек. Есть какое нибудь решение, а ля ActiveCel + R0C3 ="тут тоже самое как и в первом вопросе, только ячейка другая"

спасибо
Morozeckiy вне форума Ответить с цитированием
Старый 17.09.2016, 19:24   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

1. загнать список книг в массив. В цикле пройтись по списку: открыть книгу, взять значение из (11,3) приплюсовать к переменной, закрыть книгу.
2.
Код:
activecell.offset(row_offset, col_offset)  = //TODO
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 18.09.2016, 00:00   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Можно книги не открывать, а использовать формулу ячейки. Или в макросе можно использовать ExecuteExcel4Macro() вот как тут обсуждалось: http://www.programmersforum.ru/showthread.php?t=191322

Код:
Private Function GetValue (path, file, sheet, ref)
  Dim arg As String
  If Right (path,1) <> "\" Then path = path & "\"
  If Dir (path & file) = "" Then
     GetValue = "Файл не найден"
     Exit Function
  End If
  arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Range("A1").Address (, , xlR1C1)
  GetValue = ExecuteExcel4Macro (arg)
End Function


path - путь к закрытому файлу "c:\tmp"
file - название рабочей книги "vxl.xls"
sheet - название рабочего листа "Лист1"
ref - ссылка на ячейку "C4"
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 18.09.2016, 09:24   #4
Morozeckiy
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 36
По умолчанию

Спасибо!
Morozeckiy вне форума Ответить с цитированием
Старый 18.09.2016, 09:46   #5
Morozeckiy
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
1. загнать список книг в массив. В цикле пройтись по списку: открыть книгу, взять значение из (11,3) приплюсовать к переменной, закрыть книгу.
2.
Код:
activecell.offset(row_offset, col_offset)  = //TODO
отдельно огромное спасибо за 2 пункт!
Morozeckiy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форматирование нескольких книг макросом Parklane1488 Microsoft Office Excel 2 18.09.2014 12:40
объединение таблиц из нескольких книг Aptem89 Microsoft Office Excel 1 13.01.2013 19:44
Макрос: Сводная таблица из нескольких книг MaxxVer Microsoft Office Excel 7 28.08.2012 14:45
открытие нескольких книг одним макросом и закрытие книг другим макросом kursant95 Microsoft Office Excel 6 27.01.2011 16:54
Объединение нескольких книг clop1000 Microsoft Office Excel 1 30.11.2009 09:10