Я разрабатываю надстройку Excel с использованием VSTO на vb. Net, где я пытаюсь получить имена существующих элементов управления рабочего листа. В этом проекте я добавляю два типа элементов управления, TableLayoutPanel и NamedRange. Я oop существующих элементов управления листа, и я не могу получить тип элемента управления, и в случае, если это будет элемент управления NamedRange, я успешно получаю его ссылочную ячейку. Несмотря на это, я не могу получить название обоих типов элементов управления.
Как я могу получить название элементов управления?
Код ниже, где я создаю элементы управления:
`Dim painel = New System.Windows.Forms.TableLayoutPanel
Dim changesRange As Microsoft.Office.Tools.Excel.NamedRange
Dim nomes As Microsoft.Office.Interop.Excel.Names = Globals.ThisAddIn.Application.ActiveWorkbook.Names
PanelsID += 1
changesRange = ws.Controls.AddNamedRange(range, CStr("NamedRange_" & PanelsID))
ws.Controls.AddControl(painel, range, "Panel" & PanelsID)
Dim name1 As Excel.Name = CType(changesRange.Name, Excel.Name)
'I could get the name of the control here
MessageBox.Show(name1.Name)`
Код ниже, где я ' m зацикливание существующих элементов управления листа:
Function lerRange(ws As Microsoft.Office.Tools.Excel.Worksheet, range As Excel.Range) As Boolean
Dim wsControls As Integer
wsControls = ws.Controls.Count
For i = 0 To wsControls - 1
'Image1
MsgBox(ws.Controls(i).GetType.ToString)
If InStr(ws.Controls(i).GetType.ToString, "NamedRange") > 0 Then
'Image2
MsgBox(ws.Controls(i).RefersTo)
'Image3
MsgBox(ws.Controls(i).name.ToString)
Else
'Image4 - Using property name without toString()
MsgBox(ws.Controls(i).name)
End If
Next
lerRange = False
End Function
Выходное изображение1 - Тип элемента управления
Выходное изображение2 - Диапазон задания элемента управления NamedRange
Выходное изображение3 - Выходное имя элемента управления
Выходное изображение4 - Сообщение об ошибке
Заранее спасибо тем, кто может помочь!