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

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

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

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

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

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

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

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

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

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  [ТС] 3
спасибо. прога у меня вроде открывает, но внизу на панели ее не вижу????
Пробую так открыть файл пишет файл уже открыть, но его не видно...
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37423 / 20795 / 4280
Регистрация: 12.02.2012
Сообщений: 34,209
Записей в блоге: 14
05.01.2013, 16:03 4
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  [ТС] 5
понятно
по умолчанию стояло
[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
37423 / 20795 / 4280
Регистрация: 12.02.2012
Сообщений: 34,209
Записей в блоге: 14
05.01.2013, 17:15 6
Если открываешь новый файл, а старый еще нужен, то в 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  [ТС] 7
все верно не заметил.
это понятно. а как само копирование и вставление строчки сделать
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37423 / 20795 / 4280
Регистрация: 12.02.2012
Сообщений: 34,209
Записей в блоге: 14
05.01.2013, 17:29 8
Способ первый - по одной ячейке в цикле
Способ второй - скопировать строку, перейти в нужный лист нужной книги и вставить. Так быстрее.
Понадобятся методы Select, Copy и Paste
1
Заблокирован
05.01.2013, 17:45 9
Цитата Сообщение от Техник55 Посмотреть сообщение
это понятно. а как само копирование и вставление строчки сделать
Это поможет: Пример записи / чтения с Microsoft Excel в VB
1
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
06.01.2013, 21:28  [ТС] 10
Люди, подскажите, рабочую ссылку на литературу по работе с Excel. Чтобы быстрее дело пошло

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

Добавлено через 17 минут
И желательно на русском...
0
Заблокирован
07.01.2013, 07:38 11
Техник55, Я думаю лучше зайти тебе в Microsoft Excel там есть запись макросов. Включи ее, поделай под запись в листе что-то, потом посмотри код который он тебе написал и воткни его в VB немного подредактировав вот и все. А если тебе так нужная писанина, тогда просто иди сюда: https://www.google.ru/ и ищи с такими словами, Visual Basic работа с Excel или что-то типа того.
0
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
07.01.2013, 18:15  [ТС] 12
попробовал как предложили выше!!!
вот код:
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 13
Цитата Сообщение от Техник55 Посмотреть сообщение
Set xlsWb = xlsApp.Workbooks.Open("C:\Users\Lenovo\Desktop\пример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  [ТС] 14
1) не понял а зачем ссылка на excel.exe??? где воткнуть?
2) да пример1 по этому адресу!!!
0
Заблокирован
07.01.2013, 18:53 15
Насколько я понял, не найденный DLL есть отсутствия ссылки на объект Excel, вот и проблемы.
Миниатюры
На основе анализа ячеек сформировать другой файл xls с отчетом   На основе анализа ячеек сформировать другой файл xls с отчетом  
0
7 / 7 / 1
Регистрация: 11.06.2012
Сообщений: 352
07.01.2013, 19:16  [ТС] 16
Это не помогает!!??
Хотя я эту библиотеку сразу добавил. Все остальное то оно выполняет.
А кое что не понимает!!!!????
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37423 / 20795 / 4280
Регистрация: 12.02.2012
Сообщений: 34,209
Записей в блоге: 14
07.01.2013, 19:21 17
Попробуй:

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru