У меня есть лист Excel, в котором есть несколько полей со списком и флажки.
Я пытаюсь прочитать их выбранные значения. Мой код отлично работает, если есть поля со списком и вылетает на Checkbox, потому что в них нет ListFillRange.
Как мне получить тип формы фигур, чтобы моя функция GetControlValue могла возвращать значения всех типов элементов управления.
foreach (Excel.Shape s in ws.Shapes)
{
string value = GetControlValue(ws, s.Name);
}
private string GetControlValue(Excel.Worksheet ws, String shapeName)
{
var selValue = ws.Shapes.Item(shapeName).ControlFormat.Value;
//the fill range
var r = ws.Shapes.Item(shapeName).ControlFormat.ListFillRange;
var oRng = ws.Range[r];
var selectedValue = oRng.get_Item(selValue).Value;
return selectedValue;
}
Существует также одно перечисление MsoShapeType, но оно всегда возвращает msoFormControl.