Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры / 5 сообщений из 5, страница 1 из 1
07.12.2004, 06:58:02
    #32815528
REBUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
Ситуация такая:

1) Есть форма с кнопкой "Сформировать отчет в Excel"
2) Есть процедура BtnReportExcel_Click(), где программно создается Excel-файл

Упрощенно:
Блок А - начало процедуры
Код: plaintext
1.
2.
3.
4.
Dim xlApp As Object
Dim xlsheet1 As Object
Set xlApp = CreateObject("Excel.Application")
Set xlsheet1 = xlApp.worksheets("Лист1")
icolor =  34 
Блок В - текст
Код: plaintext
1.
2.
3.
4.
xlsheet1.cells( 91 ,  1 ).interior.colorindex = icolor
xlsheet1.cells( 92 ,  1 ).interior.colorindex = icolor
xlsheet1.cells( 93 ,  1 ).interior.colorindex = icolor
xlsheet1.cells( 94 ,  1 ).interior.colorindex = icolor
xlsheet1.cells( 95 ,  1 ).interior.colorindex = icolor

необходимо чтобы Блок В вы глядел в таком виде, т.е. вызов процедуры

Код: plaintext
1.
2.
3.
4.
SetColCell( 91 )
SetColCell( 92 )
SetColCell( 93 )
SetColCell( 94 )
SetColCell( 95 )

Как написать процедуру SetColCell(),
где аргументом номер строки,
и чтобы она заносила значение цвета в xlsheet1

Т.е. не могу разобраться с видимостью переменных, объектов(xlsheet1) и процедур

Знающие люди откликнитесь...
...
Рейтинг: 0 / 0
07.12.2004, 08:45:35
    #32815608
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
Если реализовывать через функции, то либо надо делать объект лист или книга глобальным, либо все время нужно будет передавать их в качестве параметров.

Я бы выбрал другой способ.

Создать модуль класса. В нем свойство Sheet, которое будет создавать/открывать нужный объект по имени или еще как-нибудь, как вам захочется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Property Set Sheet(Name as String)

   Set xlApp = CreateObject("Excel.Application")
   Set xlsheet = xlApp.worksheets("Name")

End Property

Public Property Color
...

Public Function CellColor(iCol as Integer, iRow as Integer)
...


А потом добавить к этому классу функций по вкусу. По занесению, форматированию. Удобно бывает внутри такого класса хранить номер текущей строки, с которой идет работа. И нечто вроде NewLine для изменения этого счетчика на +1
...
Рейтинг: 0 / 0
07.12.2004, 10:20:27
    #32815808
REBUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
Пример хороший.

С классами я не работал - надо пробовать.

У меня мало времени - надо сдавать программу.

Поэтому мне сейчас нужно:

Если реализовывать через функции, то либо надо делать объект лист или книга глобальным, либо все время нужно будет передавать их в качестве параметров
...
Рейтинг: 0 / 0
07.12.2004, 10:38:33
    #32815872
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
'В начале модуля
Private xlsheet1 As Object  '!!!
Private icolor

'процедура
private sub SetColCell ( row as integer )
  xlsheet1.cells(row,  1 ).interior.colorindex = icolor
end sub 


'использование:
SetColCell( 91 )

...
Рейтинг: 0 / 0
07.12.2004, 11:49:54
    #32816121
REBUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры
Все получается.

Благадарю за помощь.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не могу разобраться с видимостью переменных, объектов и процедур при создании процедуры / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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