Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352

На основе анализа ячеек сформировать другой файл xls с отчетом

05.01.2013, 12:13. Показов 1126. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Необходимо открыть файл xls проанализировать ячейки и закрыть. Далее на основе анализа сформировать другой файл xls с отчетом.
С excel не когда не работал в vb. С чего начать? Желательно бы литературку по работе с office.
Вроде говорят самоучитель Гарнаев хороший. Но ссылки на него устарели. Заранее благодарен...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.01.2013, 12:13
Ответы с готовыми решениями:

Сохранение массива на основе структуры в файл xls
Доброго времени суток, уважаемые форумчане! Помогите пожалуйста с решением задачи: Объвлена структура, содержащая в себе 100 переменных...

Открыть xls файл, найти значение, скопировать в другой файл, закрыть первую
Привет. Имеются file1.xls и file2.xls. Нужно написать макрос, которая сначала открывает file2.xls, потом, с первого листа этого...

Как найти в xls-файле слово и скопировать его в другой xls?
Если кто может... HELP!!! Надо из book1.xls найти слово test и перекинуть его в book2.xls

17
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
05.01.2013, 12:46
Книг на эту тему - море... То, что тебе нужно, выглядит так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim xlsApp As Object
Dim xlsWb  As Object
Dim xlsSh   As Object
 
      Set xlsApp=CreateObject("Excel.Application")
      Set xlsWb =xlsApp.Workbooks.Open("имя-книги")
      Set xlsSh  =xlsWb.Sheets("Имя-или-номер-листа")
      
      For i%=1 to 10
          For  j%=1 to 20
                x#=xlsSh.Cells(i%,j%).Value
                ...
                xlsSh.Cells(i%,j%).Value=...
          Next j%
      Next i%
 
      xlsWb.Save
      xlsWb.Close
      xlsApp.Quit
0
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
05.01.2013, 16:00  [ТС]
спасибо. прога у меня вроде открывает, но внизу на панели ее не вижу????
Пробую так открыть файл пишет файл уже открыть, но его не видно...
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
05.01.2013, 16:03
Visual Basic
1
2
3
4
5
...
 
      Set xlsApp=CreateObject("Excel.Application")
      xlsApp.Visible=True
...
0
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
05.01.2013, 17:07  [ТС]
понятно
по умолчанию стояло
[VB]xlsApp.Visible=False[VB]

Добавлено через 56 минут
проблемка возникла:
проверяем один столбец. При условии что в ячейке стоит "выполнено", мы копируем строчку там где стояло "выполнено" и далее открываем новый файл и вставляем эту строчку. Далее идем по столбцу и ищем "выполнено" итд.
Visual Basic
1
2
3
4
5
6
7
8
9
10
 For i% = 1 To 10
         For j% = 1 To 20
                x = xlsSh.Cells(i%, j%).Value
                 If xlsSh.Cells(i, 8).Value = "выполнено" Then
          ....копируем всю строчку....
           Set xlsWb = xlsApp.Workbooks.Open("C:\Users\Lenovo\Desktop\сюда.xls")
           .....вставляем в строчку....
           End If     
          Next j
      Next i
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
05.01.2013, 17:15
Если открываешь новый файл, а старый еще нужен, то в 6-й строке объектная переменная должна быть другая:

Visual Basic
1
Set xlsWb_1 = xlsApp.Workbooks.Open("C:\Users\Lenovo\Desktop\сюда.xls")
0
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
05.01.2013, 17:19  [ТС]
все верно не заметил.
это понятно. а как само копирование и вставление строчки сделать
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
05.01.2013, 17:29
Способ первый - по одной ячейке в цикле
Способ второй - скопировать строку, перейти в нужный лист нужной книги и вставить. Так быстрее.
Понадобятся методы Select, Copy и Paste
1
Заблокирован
05.01.2013, 17:45
Цитата Сообщение от Техник55 Посмотреть сообщение
это понятно. а как само копирование и вставление строчки сделать
Это поможет: Пример записи / чтения с Microsoft Excel в VB
1
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
06.01.2013, 21:28  [ТС]
Люди, подскажите, рабочую ссылку на литературу по работе с Excel. Чтобы быстрее дело пошло

Добавлено через 2 часа 50 минут
Всех поздравляю с Рождеством...
Ребята ну ссылка нужна очень...

Добавлено через 17 минут
И желательно на русском...
0
Заблокирован
07.01.2013, 07:38
Техник55, Я думаю лучше зайти тебе в Microsoft Excel там есть запись макросов. Включи ее, поделай под запись в листе что-то, потом посмотри код который он тебе написал и воткни его в VB немного подредактировав вот и все. А если тебе так нужная писанина, тогда просто иди сюда: https://www.google.ru/ и ищи с такими словами, Visual Basic работа с Excel или что-то типа того.
0
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
07.01.2013, 18:15  [ТС]
попробовал как предложили выше!!!
вот код:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub Command1_Click()
Dim xlsApp As Object
Dim xlsWb  As Object
Dim xlsSh   As Object
Dim xlsWb1  As Object
Dim xlsSh1   As Object
 
      Set xlsApp = CreateObject("Excel.Application")
      xlsApp.Visible = True
      Set xlsWb = xlsApp.Workbooks.Open("C:\Users\Lenovo\Desktop\пример1.xls")
      Set xlsSh = xlsWb.Sheets("лист1")
 Dim i%
 Dim j%
 Dim x  As Variant
 
      For i% = 1 To 5
                x = xlsSh.Cells(i%, 5).Value
               
                
                If xlsSh.Cells(i%, 5).Value = "выполнено" Then
                Select Case i%
                Case 1
                Windows("пример1.xls").Activate
                Range("B6:C6").Select
                Selection.Copy
                Set xlsWb1 = xlsApp.Workbooks.Open("C:\Users\Lenovo\Desktop\пример2.xls")
                Set xlsSh1 = xlsWb1.Sheets("лист1")
                Windows("пример2.xls").Activate
                Range("B6:C6").Select
                ActiveSheet.Paste
                Case 2
               Windows("пример1.xls").Activate
                Range("B8:C8").Select
                Selection.Copy
                Set xlsWb1 = xlsApp.Workbooks.Open("C:\Users\Lenovo\Desktop\пример2.xls")
                Set xlsSh1 = xlsWb1.Sheets("лист1")
                Windows("пример2.xls").Activate
                Range("B8:C8").Select
                ActiveSheet.Paste
                End Select
                End If
                
      Next i
 
      xlsWb.Save
      xlsWb.Close
      xlsApp.Quit
End Sub
Ошибку на этой строчке:
Visual Basic
1
 Windows("пример1.xls").Activate
ошибка 48 Error in loading DLL
0
Заблокирован
07.01.2013, 18:35
Цитата Сообщение от Техник55 Посмотреть сообщение
Set xlsWb = xlsApp.Workbooks.Open("C:\Users\Lenovo\D esktop\пример1.xls")
1. В своем проекте добавь ссылку на Excel.exe
2. У тебя по данной ссылке C:\Users\Lenovo\Desktop\пример1.xls расположен файл пример1.xls ?
0
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
07.01.2013, 18:43  [ТС]
1) не понял а зачем ссылка на excel.exe??? где воткнуть?
2) да пример1 по этому адресу!!!
0
Заблокирован
07.01.2013, 18:53
Насколько я понял, не найденный DLL есть отсутствия ссылки на объект Excel, вот и проблемы.
Миниатюры
На основе анализа ячеек сформировать другой файл xls с отчетом   На основе анализа ячеек сформировать другой файл xls с отчетом  
0
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
07.01.2013, 19:16  [ТС]
Это не помогает!!??
Хотя я эту библиотеку сразу добавил. Все остальное то оно выполняет.
А кое что не понимает!!!!????
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
07.01.2013, 19:21
Попробуй:

Visual Basic
1
xlsApp.Windows(и далее по тексту)
1
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
08.01.2013, 02:36  [ТС]
Это помогло!!! Благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2013, 02:36
Помогаю со студенческими работами здесь

Сформировать второй файл на основе исходного
Решить задачу с помощью процедур и функций. дан текстовый файл F. получить файл g добавляя в i-тую строку А i последних символов.

Копировать значения ячеек в другой файл
Доброго времени суток! Есть задача для автоматизации труда, которую не могу решить самостоятельно. Кто знает помогите пожалуйста. ...

Распарсить текстовый файл и сформировать HTML на его основе
Всем привет! Направьте, пожалуйста, на путь истинный в решении такой вот задачки. Есть текстовый файл. Необходимо его...

Сформировать файл F1, содержащий целые числа, и переписать в другой файл
Ðàçðàáîòàòü ïðîãðàììó, êîòîðàÿ ôîðìèðóåò ôàéë F1, ñîäåðæàùèé öåëûå ÷èñëà, è ïåðåïèñûâàåò ýòîò ôàéë â äðóãîé ôàéë - F2, ïîìåùàÿ â íåãî èç...

Требуется сформировать внешний файл, содержащий исходные данные и переписать в другой файл
Требуется сформировать внешний файл ABITURIENT.DAT, содержащий список абитуриентов, их оценок в аттестате, оценок по вступительным...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru