Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/30: Рейтинг темы: голосов - 30, средняя оценка - 4.50
Antony25x

Обработка данных другого файла *.xlsx

13.08.2010, 18:18. Показов 5746. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Прошу помочь разобраться со следующей задачей. У нас в банке каждую неделю обновляется большой массив (таблица в эксель) с данными по кредитному портфелю (остатки задолженности по счетам в разрезе бизнес-линий, продуктов, валют, вместе с прочей информацией: филиалы, признак того, была ли реструктуризация, корзины просрочки и т.д.). Из этой таблицы часто вручную приходится тянуть данные с многоразовым использованием фильтров, это очень утомительно.

Возникла идея создать некую общую таблицу с необходимой структурой и с помощью программного кода VBA раз в неделю выгружать в нее необходимые данные.
Буду признателен за похожий код, который сможет проиллюстрировать описанные ниже этапы. Опыт программирования, в принцепе, есть, так что я сумею все правильно преобразовать и скомпоновать.

Этапы:

1. Открытие файла *.xlsx объемом порядка 26 мб. Файл я открывал, вот только не получалось сделать там простейшие операции с числами в ячейках и вывести результат на экран… Прошу пример. Еще касательно этого пункта вопрос следующий: а можно ли получить доступ к данным файла без его фактического открытия на экране ? (это вроде как тормозит процесс, т.к. файл открывается порядка 30-40 секунд, что тоже немало).

2. После открытия файла нужно реализовать в программном коде либо цикл для подсчета суммы значений в ячейках в столбце при условии, что в соответствующих ячейках других столбцов находятся определенные значения, либо реализацию функции SUMIF, когда диапазон для поиска будет задан программно как уникальный ключ в виде связки значений в других столбцах. Что быстрее на первый взгляд? Здесь, кстати, еще простой вопрос об обращении к данным в открытом файле, нет ли подводных камней в этом вопросе?

3. Все необходимые значения я бы поместил в массивы, а потом уже определил в нужные ячейки главного файла. Возможно если передавать значения сразу, т.е. через ряд текущих переменных, которые обнуляются после передачи значений в главный файл, это будет быстрее… это вопрос?

4. Вопрос касательно графиков в основном файле. Хотелось бы добавлять новые данные так, чтобы они автоматически появлялись на графике. А то мы пока делаем это вручную, что есть очень неудобно(( Как это реализовать?

5. Еще раз к вопросу об использовании функций эксель в коде VBA: буду использовать SUMIF, VLOOKUP, SUM, MIN, MAX, MMULT (вот тут думаю есть ньюансы). Буду благодарен за примеры. Может есть подводные камни в использовании.
6. Еще хочу узнать, где можно взять нормальные, красивые кнопки для интерфейса, а то стандартные какие-то примитивные.

СПАСИБО!!!
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.08.2010, 18:18
Ответы с готовыми решениями:

Вывод данных из файла xlsx в TextBox
Ребят,никак не могу додуматься до решения как сделать. Написал код по сохранению их текстбокса в документ эксель. Private Sub...

Перенос данных из файла xlsx (Excel) в ListView
Есть файл Excel (xlsx). формата: Пользователь Пароль user 123 user1 456 user2 6567 ...

Как автоматизировать импорт данных в базу mysql из xlsx файла?
Есть обновляемый файл xlsx на ftp сервере.Необходимо по расписанию импортировать его в базу mysql. подскажите как это сделать эффективно и...

5
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
13.08.2010, 21:09
рекомендую эту задачу решать при помощи Access. при тех же трудозатратах получишь более качественное, масштабируемое решение
0
исследователь
325 / 104 / 3
Регистрация: 18.03.2010
Сообщений: 1,079
Записей в блоге: 2
15.08.2010, 03:13
Цитата Сообщение от ironegg Посмотреть сообщение
рекомендую эту задачу решать при помощи Access. при тех же трудозатратах получишь более качественное, масштабируемое решение
Графики в Acess не сделаешь как в excel
0
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
15.08.2010, 10:57
деза. здесь идет речь о противоположном http://office.microsoft.com/ru... 34600.aspx
я уже не говорю о страницах доступа к данным(для которых имеются различные Web-компоненты, в том числе и диаграммы) и о том, что Access благодаря VBA можно использовать как сервер автоматизации и выводить данные не то что в word и excel, но и, например, в Visio, AutoCAD итд
1
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
15.08.2010, 11:16
Цитата Сообщение от Antony25x Посмотреть сообщение
а можно ли получить доступ к данным файла без его фактического открытия на экране ?
У закрытого файла нельзя получить данные. Можно открывать файл, но не отображать его на экране монитора, только я думаю, что это по времени будет столько же - ведь время определяется загрузкой в оперативную память, а не прорисовкой на мониторе.
0
Antony25x
16.08.2010, 11:36
В принципе ведь можно прямо из кода в книге эксель обращаться к базе данных Access за необходимыми данными, у меня вот есть такой пример:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub UFN_REPORT_CORPORATE_GRP(ColIdx As Integer, RepDate As String, KolVoD As String, strConnectSQL As String) 
On Error GoTo ERR_UFN_REPORT_OTP_CORPORATE_GRP 
 Dim StrSQL As String 
 Dim SheetIdx As Integer 
 Dim cnn As ADODB.Connection 
 Dim rst As ADODB.Recordset 
 StrSQL = "SELECT * FROM UFN_REPORT_CORPORATE_GRP_CLN2_PER('" + KolVoD + "','" + RepDate + "') ORDER BY LOAN" 
 Set cnn = New ADODB.Connection 
 cnn.CommandTimeout = 0 
 cnn.ConnectionTimeout = 0 
 cnn.Mode = adModeRead 
 cnn.CursorLocation = adUseClient 
 cnn.Open strConnectSQL 
 cnn.BeginTrans 
 Set rst = New ADODB.Recordset 
 rst.Open StrSQL, cnn, adOpenStatic, adLockOptimistic 
 If Not rst.EOF Then 
  rst.MoveFirst 
 Else 
  MsgBox "There are no data for the specified date", vbInformation, "MS SQL Server" 
  GoTo EXIT_UFN_REPORT_OTP_CORPORATE_GRP 
 End If 
 While Not rst.EOF 
    For SheetIdx = 4 To Sheets.Count 'Step 3 
        If UCase(Sheets(SheetIdx).Name) = UCase(CStr(rst!LOAN)) Then 
            Sheets(SheetIdx).Select 
            If SheetIdx = 9 Then
              Cells(6, ColIdx) = 0 
              Cells(8, ColIdx) = 0 
              Cells(10, ColIdx) = 0 
...........................
        End If 
    Next SheetIdx
Хочу узнать Ваше мнение, возможно это и будет оптимальным решением - просто кодом из эксель файла тянуть все данные обращаясь к базе данных. Конечно, в самой базе возможно потребуются дополнительные запросы, но это не проблема, доступ к базе есть.

Еще один вопрос по графикам, автоматическое обновление графика после вставки столбца с новыми данными, возможно ли это? Если да, то попрошу пример кода. Спасибо.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.08.2010, 11:36
Помогаю со студенческими работами здесь

Получение данных из другого js файла
Добрый вечер! Использую Node.js и js. Есть файл app.js, в котором описана вся логика программы (подключение к БД, get и post запросы, в...

выборка данных из другого файла
В файле "А" по данным столбца "А" нужно заполнить столбец "Н" на основе данных из файла "B". из файла "В" при...

Запись содержимого txt-файла на новый лист xlsx-файла
Добрый день, прошу помощи, или совета где поискать нужную инфу. Есть txt-файл, которые генерирует скрипт vbs, при этом я дописал скрипт,...

Подстановка в переменную данных из другого файла
Здрям! Я получил файл с именами всех ПК в сети. И есть у меня второй файл VBS, который проверяет установленный на ПК софт: On...

Автоматический импорт данных из другого файла
Здравствуйте. Нужна помощь... На компьютере есть *.txt файл, название которого меняется каждый день (просто меняется дата в названии )....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru