powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 400
10 сообщений из 10, страница 1 из 1
Ошибка 400
    #39415731
ФАЭТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю экспорт данных в шаблон Excel, возникла необходимость добавить в строки с кодами объектов названия объектов, но как примечание. Сварганил код приведённый ниже. Во время исполнения выкидывает окно: Заголовок - название файла, пиктограмма жёлтого треугольника с восклицательным знаком, чуть дальше цифрой 400 и кнопка Ok. Прогнал этот участок пошагово, заметил что срабатывает на разных участках кода. Кто подскажет, что за фигня творится?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Set qdf = CurrentDb.QueryDefs("qrySAPNumberObject")
Set rs = qdf.OpenRecordset
   For i = 1 To rs.RecordCount
      rs.MoveFirst
      For j = 1 To rs.RecordCount
         If objWindow.ActiveSheet.Range(Cells(2 + i, 1), Cells(2 + i, 1)).Value = rs.Fields("SAP_Number") Then
            objWindow.ActiveSheet.Range(Cells(2 + i, 1), Cells(2 + i, 1)).AddComment
            objWindow.ActiveSheet.Range(Cells(2 + i, 1), Cells(2 + i, 1)).Comment.Text Text:=rs.Fields("Object_Name")
         End If
      rs.MoveNext
      Next j
   Next i
...
Рейтинг: 0 / 0
Ошибка 400
    #39415732
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cells висячий.

зы: Помимо всего прочего.
...
Рейтинг: 0 / 0
Ошибка 400
    #39415734
ФАЭТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclared,

В смысле?
...
Рейтинг: 0 / 0
Ошибка 400
    #39415738
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что есть Cells в приведенном листинге?
...
Рейтинг: 0 / 0
Ошибка 400
    #39415740
ФАЭТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclared,

Ячейка (Номер строки, Номер столбца)
...
Рейтинг: 0 / 0
Ошибка 400
    #39415742
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приведенном листинге нет никакой "Ячейка".

Что есть Cells в приведенном листинге?
...
Рейтинг: 0 / 0
Ошибка 400
    #39415745
ФАЭТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclared,

Выдержка из Хелпа
Example
This example sets the font size for cell C5 on Sheet1 to 14 points.
(В этом примере задается размер шрифта для ячейки C5 на листе Sheet1 до 14 пунктов.)

Код: vbnet
1.
Worksheets("Sheet1").Cells(5, 3).Font.Size = 14



Cells (5,3) - ячейка по 5-ой строке и 3-ему столбцу, что соответствует ячейке C5
...
Рейтинг: 0 / 0
Ошибка 400
    #39415773
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ФАЭТ, не надо приводить хэлп. Тебе пытаются объяснить, что все объекты нужно получать от базового объекта (экземпляра сервера автоматизации) Excel.Application , который создан/получен в свою очередь с помощью - New, CreateObject, GetObject .
Например
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim objAppExcel as Excel.Application
Dim objWsExcel as Excel.Worksheet
Set objAppExcel =New Excel.Application
Set objWsExcel =objAppExcel.Workbooks(1).Worksheets(1)
...
objWsExcel.Range(objWsExcel.Cells(2 + i, 1), objWsExcel.Cells(2 + i, 1)).AddComment
...
...
Рейтинг: 0 / 0
Ошибка 400
    #39415782
ФАЭТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Dim objExcel As Object
Dim objWindow As Object

Set objExcel = GetObject(, "Excel.Application")
Set objWindow = objExcel.ActiveWindow

objExcel.WindowState = -4137
objWindow.WindowState = -4137
objWindow.Activate
..............

Set qdf = CurrentDb.QueryDefs("qrySAPNumberObject")
Set rs = qdf.OpenRecordset
   For i = 1 To rs.RecordCount
      rs.MoveFirst
      For j = 1 To rs.RecordCount
         If objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).Value = rs.Fields("SAP_Number") Then
            objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).AddComment
            objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).Comment.Text Text:=rs.Fields("Object_Name")
         End If
      rs.MoveNext
      Next j
   Next i



Таже ошибка, только уже конкретно на строке

Код: vbnet
1.
objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).Comment.Text Text:=rs.Fields("Object_Name")
...
Рейтинг: 0 / 0
Ошибка 400
    #39415792
ФАЭТ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вообщем так всё работает

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Dim ObjectName as String

Set objExcel = GetObject(, "Excel.Application")
Set objWindow = objExcel.ActiveWindow

objExcel.WindowState = -4137
objWindow.WindowState = -4137
objWindow.Activate
..............

Set qdf = CurrentDb.QueryDefs("qrySAPNumberObject")
Set rs = qdf.OpenRecordset
   For i = 1 To rs.RecordCount
      rs.MoveFirst
      For j = 1 To rs.RecordCount
         ObjectName=rs.Fields("Object_Name")
         If objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).Value = rs.Fields("SAP_Number") Then
            objWindow.ActiveSheet.Range(objWindow.ActiveSheet.Cells(2 + i, 1), objWindow.ActiveSheet.Cells(2 + i, 1)).AddComment ObjectName
            Exit For
         End If
      rs.MoveNext
      Next j
   Next i
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 400
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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