Я создаю программу в 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.
Что было бы наиболее эффективным решением этой проблемы?