Я знаю VBA как для комбинации ActiveX, так и для выпадающего списка форм, и на основе этого я могу дать вам очень неопытные ноты для C# для раскрывающегося списка форм, комбо ускользает от меня.
Работа с примечаниями от: http://support.microsoft.com/kb/302084
//Get a new workbook.
oWB = (Excel._Workbook)(oXL.Workbooks.Open("C:\\Docs\\Book1.xls"));
//3rd Sheet
oSheet = (Excel._Worksheet)oWB.Sheets.get_Item(3);
//This will return an index number
var i = oSheet.Shapes.Item("Drop Down 1").ControlFormat.Value;
//This will return the fill range
var r = oSheet.Shapes.Item("Drop Down 1").ControlFormat.ListFillRange;
oRng = oSheet.get_Range(r);
//This will return the value of the dropdown, based on the index
//and fillrange
var a =oRng.get_Item(i).Value;
//Just to check
textBox1.Text = a;
Это может помочь с комбо ActiveX, но я только половину получил его на работу:
using MSForm = Microsoft.Vbe.Interop.Forms;
<...>
Excel.OLEObject cbOLEObj = (Excel.OLEObject)workSheet.OLEObjects("ComboBox1");
MSForm.ComboBox ComboBox1 = (MsForm.ComboBox) cbOLEObj.Object;
Console.WriteLine(ComboBox1.Text);
От: http://www.eggheadcafe.com/community/aspnet/66/10117559/excel-get-value-from-a-combobox.aspx
Это выпадающее меню ActiveX или раскрывающееся меню Forms? – Fionnuala
Я не знал, что есть оба? У вас есть код для обоих? Я предполагаю, что выпадающие формы? –
Выпадающее меню форм намного проще, поскольку оно может содержать ссылку на ячейку, которая содержит значение, поэтому все, что вам нужно сделать, это ссылка на ячейку. – Fionnuala