Форматирование программно добавленных элементов управления для размещения в ячейках - PullRequest
0 голосов
/ 11 января 2019

Я создаю программу в Visual Basic через Microsoft Excel, где я могу ввести всю информацию из приложения в Excel. Каждая строка уникальна и имеет выпадающий элемент управления, который создается и размещается программно (см. Код ниже).

Проблема, с которой я столкнулся, заключается в правильном размещении элемента управления в каждой ячейке в одном из столбцов.

Я прочитал документы в Интернете и видел примеры по другим вопросам, но ни один из них, похоже, не подходит для моей ситуации. Мне по-прежнему приходится угадывать и проверять значения x и y для функции AddFormControl, чтобы разместить элементы управления в некотором правильном порядке.

Код:

For y = 1 To UBound(array) + 1

   Set lb = Sheet1.Shapes.AddFormControl(xlDropDown, 274, 32 + (19 * y), 77, 19)
   With lb
       .ControlFormat.DropDownLines = 3
       .ControlFormat.AddItem "Select a value", 1
       .ControlFormat.AddItem "Auto", 2
       .ControlFormat.AddItem "Default", 3
       .ControlFormat.Value = 1
   End With

Next y

Я посчитал ширину и высоту всех строк и столбцов, чтобы я мог разместить элементы управления в правильном месте, но они смещены, некоторые больше, чем другие.

Приведенное выше значение x 274 - это то, что соответствует точке, которую я бы хотел, для оси x на листе Excel, но не то, насколько широкими будут столбцы перед точкой. То же самое касается значения y 77.

Что было бы наиболее эффективным решением этой проблемы?

1 Ответ

0 голосов
/ 11 января 2019

На самом деле вы можете использовать Range.Top и Range.Left, чтобы расположить ваши элементы управления From именно там, где вы хотите, и они будут идеально выровнены с рассматриваемой ячейкой. Это отличный способ динамически добавлять их в больших количествах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...