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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2015, 15:10   #1
julius
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 25
По умолчанию Ошибка при построении диаграммы

Добрый день.
У меня возникла проблема.
Есть программа. Суть работы следующая.
Выбирается массив экселевских файлов. В каждом из них проводятся расчеты, делается итоговая табличка, которая вносится в вордовский файл. Затем экселевский файл сохраняется и закрывается и программа переходит к следующему.
Решил добавить еще функцию построения графика по итоговой таблицы.
После того, как данные из экселевского файла скопированы в ворд я пишу

Код:
Import_Document.Activate 'Import_Document - это переменная экселевского файла (Excel.Workbook)
Charts.Add
Далее иду другие части кода.
Для одного файла все прекрасно работает, но как только я выбираю массив файлов, то на втором файле в строке Charts.Add выскакивает ошибка Run-time error 1004. Method 'Charts' of object '_Global' failed.
julius вне форума Ответить с цитированием
Старый 20.01.2015, 16:08   #2
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

а вы напишите Import_Document.Charts.Add
cw_o вне форума Ответить с цитированием
Старый 20.01.2015, 18:40   #3
julius
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 25
По умолчанию

Возможно этот вариант может получится. Первый просчет проходит без проблем, но во время обработки второго файла он начинает ругаться на все строчки, которые начинаются с ActiveChart. Например
ActiveChart.ChartType = xlLineMarkers.
Подскажите, как по-другому можно обратиться к диаграмме, потому что эту команду я брал из макрорекодера.
Странно, что первый просчет идет без проблем.
julius вне форума Ответить с цитированием
Старый 21.01.2015, 17:52   #4
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

Массив циклом перебираете? приведите весь код
cw_o вне форума Ответить с цитированием
Старый 23.01.2015, 09:23   #5
julius
Пользователь
 
Регистрация: 22.11.2009
Сообщений: 25
По умолчанию

Программа работает с использованием нескольких форм
В форме есть label12, куда заносится количество выбранных файлов на предыдущем этапе работы программы. В label10 хранится номер текущего файла, который обрабатывается, а в combobox1 хранится массив путей к файлам.

Далее
Код:
Dim Num As Long
Dim XLS As Object
Dim Import_Document As Excel.Workbook
Dim Data_Base As Excel.Workbook
Dim i As Integer
Dim Number_of_Files As Integer

Start:
'Открытие файла
Set XLS = CreateObject("Excel.Application")
XLS.Visible = True
Set Import_Document = XLS.Workbooks.Open(Me.ComboBox1.List(Me.Label10.Caption - 1))

'Открытие базы данных коэффициентов трансформации
If Me.CheckBox1.Value = True Then
    Set Data_Base = XLS.Workbooks.Open(Me.TextBox3.Value)
End If
Import_Document.Activate
далее идут различные расчеты внутри Import_Document.
А потом идет конечная часть кода. Суть такая, что если порядковый номер следующего файла выше, чем общее количество файлов, то перескок в конечную часть кода, если нет, то идет в начало кода. CheckBox1 отвечает за то, ведется ли расчет следующего файла автоматически или пользователь должен вручную ввести новые данные и нажать ОК.

Код:
Import_Document.Save
XLS.Quit
Set XLS = Nothing

Me.Label10.Caption = Me.Label10.Caption + 1

n1 = Me.Label10.Caption
n2 = Me.Label12.Caption

If n1 > n2 Then
    GoTo The_end
Else
    UserForm1.Label4.Caption = Dir(Me.ComboBox1.List(Me.Label10.Caption - 1))
    Me.ComboBox1.Value = Me.ComboBox1.List(Me.Label10.Caption - 1)
    'Проверка, используется ли база данных
    If Me.CheckBox1.Value = False Then
        UserForm1.Show
    Else
        GoTo Start
    End If
End If
julius вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему возникает ошибка при построении? с++ cemaru Visual C++ 1 13.04.2014 22:36
"Ошибка при построении" но где информация об ошибке? geograph C# (си шарп) 1 04.01.2013 21:47
Ошибка при построении Release в VC 2010 Express. alsav22 Общие вопросы C/C++ 2 27.04.2012 22:35
Ошибка при построении в visual c++ ghost1st Visual C++ 2 13.02.2010 22:55
MS Visual Studio. ошибка при построении Backfire Софт 0 11.10.2009 18:19