Страницы: 1
RSS
Можно ли свойства LinkedCell и ListFillRange элемента ActiveX "Поле со списком" привязать к переменным в макросе?
 
Привет всем
На листе есть ComboBox (пример во вложенном файле). Свойства LinkedCell (C9) и ListFillRange(A1:A5) заданы вручную. Как в макросе привязать их к переменным t и k? Чтобы с помощью макроса менялся диапазон данных и связанная ячейка (получилось C8 и A1:A25)?
Подскажите, пожалуйста.
Изменено: BretHard120 - 14.08.2014 12:42:26
 
можно:
Код
Sheets("Лист1").ComboBox1.LinkedCell = Range("C" & t).Address
Sheets("Лист1").ComboBox1.ListFillRange = Range("A1:A" & k).Address 
F1 творит чудеса
 
а чем =Range("C" & t).Address будет отличаться от простого ="C" & t ?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Поправил код на
Код
Dim k&, t&
Dim WB As Excel.Workbook
Dim WS As Excel.Worksheet

Public Sub Pole()

Set WB = Application.Workbooks("Поле со списком.xlsm")
Set WS = WB.Worksheets(1)

k = 5
t = 9

'WB.Worksheets(1).ComboBox1.LinkedCell = "C" & t
'WB.Worksheets(1).ComboBox1.ListFillRange = "A1:A" & k

WS.ComboBox1.LinkedCell = "C" & t
WS.ComboBox1.ListFillRange = "A1:A" & k

End Sub 
Вот только почему запись в виде:

Код
WB.Worksheets(1).ComboBox1.LinkedCell = "C" & t 
срабатывает, а в виде
Код
WS.ComboBox1.LinkedCell = "C" & t
выдает ошибку? (не понимает метод).
 
1. Возможно С записана на кириллице, а не на латинице.
2. Лучше в таких случаях добавлять имя листа:
Код
WB.Worksheets(1).ComboBox1.LinkedCell = "'" & WB.Worksheets(1) & "'!C" & t
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
"C" записана на латинице, я просто скопировал работающую строку и  WB.Worksheets(1) на WS поменял. Ладно, буду пользоваться тем вариантом, который работает. Спасибо за ответы.
Страницы: 1
Читают тему
Наверх