Добрый вечер(день)!
Возник следующий вопрос. Имеется рабочий лист с некоторым количеством элементов управления на нем. В ходе выполнения макроса vba элементы меняют свое местоположение. Задача заключается в том, чтобы после выполнения программы вернуть все контролы на свое первоначальное место.
Для этого я решил с помощью цикла for...each перед началом выполнения программы сохранить свойство left каждого элемента в массив, а после аналогичным способом присвоить их обратно.
Начал так
For each ctl in Лист11.controls
CLeft(n) = ctl.left
n = n +1
Next
Однако обнаружилось, что у листа такой коллекции не имеется. Как решить проблему? Неужели придется присваивать свойство каждого элемента по отдельности? Хотелось бы более красивое решение.
И еще попутный вопрос.
Чтобы сослаться на листбокс рабочего листа приходится делать так
Лист11.ListBox1
А хотелось бы вот так
Sheets("ACTUAL").ListBox1
Но так не получается
Поведуйте пожалуйста, в чем разница между такими записями?
Возник следующий вопрос. Имеется рабочий лист с некоторым количеством элементов управления на нем. В ходе выполнения макроса vba элементы меняют свое местоположение. Задача заключается в том, чтобы после выполнения программы вернуть все контролы на свое первоначальное место.
Для этого я решил с помощью цикла for...each перед началом выполнения программы сохранить свойство left каждого элемента в массив, а после аналогичным способом присвоить их обратно.
Начал так
For each ctl in Лист11.controls
CLeft(n) = ctl.left
n = n +1
Next
Однако обнаружилось, что у листа такой коллекции не имеется. Как решить проблему? Неужели придется присваивать свойство каждого элемента по отдельности? Хотелось бы более красивое решение.
И еще попутный вопрос.
Чтобы сослаться на листбокс рабочего листа приходится делать так
Лист11.ListBox1
А хотелось бы вот так
Sheets("ACTUAL").ListBox1
Но так не получается
Поведуйте пожалуйста, в чем разница между такими записями?