powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / сумма ячеек из разных файлов
5 сообщений из 5, страница 1 из 1
сумма ячеек из разных файлов
    #34268247
Добрый день
Уверен такая задача уже рассматривалась!
Excel
Необходимо сложить одни и те же ячейки из разных файлов.
то есть
ЯчейкаИтоговойТаблицы(С11) = НужнаяЯчейкаИзФайла№1(С11) +НужнаяЯчейкаИзФайла№2(С11) + и т.д.
ЯчейкаИтоговойТаблицы(С12) = НужнаяЯчейкаИзФайла№1(С12) +НужнаяЯчейкаИзФайла№2(С12) + и т.д.

в моём случае складываются ячейки с одими и теми же номерами(в примере это С11 и С12), так как файлы одинаковой структуры

Не програмер далеко, поэтому мне бы готовый макрос с комментариями где указывать имена файлов и номера ячеек которые нужно складывать. Извиняюсь за наглость, но может кто уже такое писал)).
...
Рейтинг: 0 / 0
сумма ячеек из разных файлов
    #34268358
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще по-моему в этом случае оптимальнее использовать формулы (вручную или через VBA), но если очень хочется, то см. цитату ниже.

KL
[MVP - Microsoft Excel]

------------- http://www.j-walk.com/ss/excel/eee/eee009.txt ------------

Created by Bob Umlas and adaptation to a Function procedure
by John Walkenbach

This procedure allows for the access of information in a closed workbook
with VBA.

From Bob:

Here's a routine you can incorporate into your programs if you ever have
a need to retrieve data from a file without opening it. In the needed case,
I had to read any number of files (depending on user's selection from a
listbox) and determine whether range W11:W36 on sheet "General"
totalled zeroand do one thing if ANY file met that condition or another
thing if not.

At first, I thought I'd need to open each file, take the sum, then close
it again.

Not true.

By building a string which you can pass into the ExecuteExcel4Macro, you
can access this info directly, without opening the file, making it very fast:

Sub GetDataFromClosedFile()
filepath = "G:\fsoft\sos\data\ley"
FileName = "1cA10.sos" '<==this could change in a loop
sheetname = "General"
Strg = "sum('" & filepath & "\[" & FileName & "]" & sheetname &
"'!r11c23:r36c23)"
MsgBox ExecuteExcel4Macro(Strg)
End Sub

'In reality, it looked like this:
Sub GetDataFromClosedFile()
filepath = "G:\fsoft\sos\data\ley"
sheetname = "General"
For Each Fl In DialogSheets("DlgMulti").ListBoxes("MainList").List
Strg = "sum('" & filepath & "\[" & Fl & "]" & sheetname &
"'!r11c23:r36c23)"
Ans = ExecuteExcel4Macro(Strg)
If Ans > 0 Then Exit Sub
Next
'none > 0
'...rest of code goes here
End Sub
...
Рейтинг: 0 / 0
сумма ячеек из разных файлов
    #34268403
KL (XL)Вообще по-моему в этом случае оптимальнее использовать формулы (вручную или через VBA), но если очень хочется, то см. цитату ниже.


с удовольствием выслушаю более оптимальное решение проблемы
...
Рейтинг: 0 / 0
сумма ячеек из разных файлов
    #34268437
ставил это:

'In reality, it looked like this:
Sub GetDataFromClosedFile()
filepath = "D:\"
sheetname = "1l"
For Each Fl In DialogSheets("DlgMulti").ListBoxes("MainList").List
Strg = "sum('" & filepath & "\[" & Fl & "]" & sheetname & "'!r11c23:r36c23)"
Ans = ExecuteExcel4Macro(Strg)
If Ans > 0 Then Exit Sub
Next
'none > 0
'...rest of code goes here
End Sub

выдало:

Run time error '9'
Subscript out of range

извиняюсь за некомпетентность
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
сумма ячеек из разных файлов
    #38064100
извиняюсь за некомпетентность[/quot]

нашел ответ здесь:
http://www.excel-vba.ru/chto-umeet-excel/kak-bystro-umnozhitrazdelitslozhitvychest-iz-mnozhestva-yacheek-odno-i-to-zhe-chislo/
если конечно все еще актуально ;-)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / сумма ячеек из разных файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]