|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.04.2009, 09:37 | #1 |
Пользователь
Регистрация: 16.04.2009
Сообщений: 37
|
Переменное имя объекта
Просьба ответить новичку в Visual Basic.
В таблице Excel у меня 31 кнопка CommandButton (по количеству дней в месяце). Их имена отличаются только номером: с 1 до 31 (CommandButton1,CommandButton2 ...) Хочется изменять свойства (ForeColor и т.п.) этих кнопок, не перебирая их имена, а к примеру (который я не могу правильно написать): Worksheets("табель").CommandButton & ddd & .ForeColor = 3 где ddd - как-раз этот номер кнопки в символьном выражении. И еще вопрос: при нажатии на каждую из этих кнопок, обязательно обрабатывать 31 событие CommandButton1-31_Click() или это можно упростить? |
16.04.2009, 10:01 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Я же говорил - без примера файла помочь будет сложно...
К примеру, кнопки бывают 2 видов. Откуда нам знать, какие у Вас в файле? Цитата:
Если же все эти кнопки созданы вручную - то придётся прописывать 31 строку (по строке для каждой кнопки) По поводу раскраски кнопок - можно попробовать так: Код:
|
|
16.04.2009, 10:37 | #3 |
Пользователь
Регистрация: 16.04.2009
Сообщений: 37
|
Вот часть кода:
With Worksheets("график").Range("D" & (7 + (cur_month - 1) * 8) & ":" & "AH" & (7 + (cur_month - 1) * 8)) For ii = 4 To 6 For jj = 6 To 16 dd = dd + 1 If val(.Cells(1, dd)) > 0 Then Worksheets("табель").Cells(ii, jj) = .Cells(1, dd) If .Cells(1, dd).Interior.ColorIndex = 3 Then Worksheets("табель").CommandButton1 .ForeColor = 3 Else Worksheets("табель").Cells(ii, jj).Interior.ColorIndex = 2 Worksheets("табель").CommandButton1 .ForeColor = 2 End If End If Next jj Next ii End With Здесь на листе "табель" заполняются ячейки дней текущего месяца из листа "график". На листе "график" праздничные дни закрашены в красный цвет (.ColorIndex = 3). Хочется надписи кнопок (31 кнопка), номера которых соответствуют праздничным дням, тоже закрасить в .ColorIndex = 3. В строках: Worksheets("табель").CommandButton1 .ForeColor = необходимо вместо "1" использовать значение переменной "dd" (номер праздничного дня). Вопрос: как это сделать? |
16.04.2009, 12:17 | #4 |
Пользователь
Регистрация: 16.04.2009
Сообщений: 37
|
Во вложении лежит файл таблицы.
Описываемый код находится в Workbook_Open() |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта | User>lia | Общие вопросы Delphi | 4 | 16.01.2009 16:37 |
при навелении на любой объект на форме в лабеле имя объекта | Arkuz | Общие вопросы Delphi | 6 | 02.06.2008 09:15 |
Переменное имя создаваемого файла | Degmax | Win Api | 2 | 27.03.2008 20:39 |