Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как объявить глобальный динамический массив на уровне модуля?
 
Допустим, имею динамический массив Mass и две локальные процедуры в форме. Нужно передать значения этого массива из одной процедуры в другую.  
 
Сначала решил в General написать  
 
Public ReDim Mass (1 to 10). Ругается "Identificier expected".  
 
Вычитал в инете такой вариант  
 
в general объявить  
 
Public Mass ()  
 
а в локальной процедуре  
 
ReDim Mass (1 to 10).    
Ругается "Constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules"  
 
Как правильно объявить такой массив?
Получить данные из диалога SaveAs
 
Имеется код, который вызывает диалоговое окно xlDialogSaveAs  
 
   FName = Application.GetSaveAsFilename(InitialFileName:=FName, _  
       FileFilter:="Excel Files (*.xls), *.xls")  
   If FName <> "" Then If FName <> "False" Then ActiveWorkbook.SaveAs Filename:=FName & ".xls".....  
 
Нужно отследить, нажата ли была в диалоге клавиша "Сохранить", т.е. был ли сохранен файл или пользователь отменил сохранение файла.  
Подскажите, как это можно узнать?
Как "заставить" элменты управления перемещаться вместе с выделенным диапазоном ячеек?
 
Как "заставить" элменты управления перемещаться вместе с выделенным диапазоном ячеек если приложение не находиться в режиме конструктора?
Как обратиться к выделенному объекту Shape?
 
Имеется проблема следующего содержания. Программа копирует определенный диапазон ячеек на рабочем листе на другой лист многократно (содержимое ячеек при каждой итерации разное). В выделяемом для копирования диапазоне, (в строго определенном месте этого диапазона)располагается объект Label свойства которого (надпись) тоже меняются при каждой итерации.  
При копировании диапазона объект, тем не менее, не копируется, хотя в свойствах стоит "перемещать объект вместе с ячейками". Но в ручном режиме объект вместе с ячейками копируется.  
 
Пробовал коприровать объект отдельно  
 
Sheets("Имя_листа1").Activate  
ActiveSheet.Shapes("Label1").Select  
Selection.Copy  
Sheets("Имя_листа1").Activate  
ActiveSheet.Paste  
 
но при таком подходе, объект располагается в каждом скопированном диапазоне не там где должен.Хотел выравнивать каждый объект отдельно в цикле по св-вам Top, Left, но  имя объекта каждый раз меняется Label1, Label2, ... А объектов много.  
В этой связи два вопроса:  
1)Можно как-нибудь заставить объект перемещаться ввместе с выделенным диапазоном ячеек, когда это делается посредством программы?  
2)Если нет, то как обратиться к выделенному объекту Label не зная его имени, сразу после вставки на новый лист когда он выделен?
Как лучше выделить неактивные элементы управления?
 
Вобщем, стоит задача, чтобы пользователи сразу могли отличить активный ComboBox от неактивного , т.к. на листе их довольно много и содержимое одних влияет на доступность других (причем других видов ЭУ на листе это касаться не должно). Прописывать код под backcolor каждого ComboBox в зависимости от его состояния enabled не тянет т.к., повторюсь, элементов много. Думал попробовать изменить цвета каждого ComboBox в его свойствах в зависимости от его состояния enabled (для лучшего контраста), но ничего такого в свойствах похоже нет. Можно ли все-таки решить эту задачу не меняя системных цветов Windows и не прописывая код для каждого отдельного ComboBox?
Как обратиться к элементам управления на рабочем листе?
 
Вобщем, пишу процедуру которая будет проверять, заполнены ли все Combobox на рабочем листе.  
 
(1) Function Correct() As Boolean  
(2)  Dim pol As MSForms.Control  
(3)  Correct = True  
(4)  For Each pol In ActiveSheet.Controls  
(5)   If TypeOf pol Is MSForms.Combobox and pol.Value = Empty Then  
(6)    Correct = False  
(7)   End If  
(8)  Next  
(9) End Function  
 
 
 
В строке 4 выдает: Object doesn't support this property or method (Error 438)    
 
Вместо ActiveSheet.controls пытался вводить Worksheets("Имя листа").controls, Sheets("Имя листа").controls - ниче не помогает.  
Как обратиться к ЭУ на рабочем листе?
Страницы: 1
Наверх