Страницы: 1
RSS
Возможна ли константа с ListObject?
 
Можно ли как-то задать глобальную константу вроде:
Код
Option Explicit
Const Table1 As ListObject = ThisWorkbook.Sheets("Sheet1").ListObjects("Table1")

чтобы:
Код
ThisWorkbook.Sheets("Sheet1").ListObjects("Table1").ListColumns.Add

стало:
Код
Table1.ListColumns.Add


PS: Вариации вроде:
Код
Option Explicit
Public Table1 As ListObject

Private Sub Workbook_Open()
   Set  Table1 = ThisWorkbook.Sheets("Sheet1").ListObjects("Table1")
End Sub

не предлагать.
 
Цитата
tchack: Const Table1 As ListObject
вроде, нельзя. Но можно задать имена листа и таблицы, а, если на листе умная одна, то можно без её имени — по индексу:
Set  Table1 = ThisWorkbook.Sheets("Sheet1").ListObjects(1)

Можете попробовать Public Property Get — у меня так с константой массива получилось
Изменено: Jack Famous - 15.07.2022 21:32:47
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, спасибо за наводку.

Вдруг кому пригодится: воспользовался следующим:
Код
Public Property Get Table1() As ListObject
    Set Table1 = ThisWorkbook.Sheets("Sheet1").ListObjects("Table1")
End Property


и Table1.ListColumns.Add заработало во всех модулях!
 
Цитата
Jack Famous написал:
вроде, нельзя.
Почему вроде?
https://docs.microsoft.com/ru-ru/office/vba/language/reference/user-interface-help/const-statement
Тип данных константы; может принимать значение Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (в настоящее время не поддерживается), Date, String или Variant.
По вопросам из тем форума, личку не читаю.
 
БМВ, а где ты в моём примере константу увидел?  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
так ты отвечаешь что вроде нельзя,  а тут не вроде а точно нельзя.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ: тут не вроде а точно нельзя
а — ты в ЭТОМ смысле)) ну это да - спасибо  :)
Изменено: Jack Famous - 15.08.2022 09:42:42
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Правильно ли я понимаю, что Property Get не работает в отношении пользовательского объекта??

Код
Private Type Users: UserName As String: Surname As String: End Type
Public Property Get myUsers() As Users: Set myUsers = UsersAccess(): End Property


UsersAccess() - функция,
Смысл не объявлять переменную в каждом макросе.

Есть ли выход?
Изменено: tchack - 09.09.2022 14:48:38
 
Вопрос не соответствует названию темы. Создайте, пожалуйста, новую.
Владимир
Страницы: 1
Наверх