2017-03-02 3 views
0

Das Blatt haben einen Wert und es ist eine ComboBox und Datenüberprüfung. Diese ComboBox-Werte stammen aus einem anderen Arbeitsblatt. Wenn ich das Excel in C# öffne, sind ALLE Werte NULL. Aber wenn ich es in normalen Excel öffne, funktioniert es gut und Daten sind da. Was vermisse ich?Excel Lesen Wert mit Formeln zu Lookup fehlgeschlagen

+0

So enthält Zelle 'E33' eine ComboBox? Ich bin nicht besorgt über die Datenvalidierung, aber ich bin mir nicht sicher, was Sie hier erreichen wollen. Der Wert oder die Formel in 'E33'? Der Inhalt einer ComboBox? Wie sieht 'TestSheet' aus? – reasra

+0

Womit wird TestSheet.get_range zugewiesen? – Drakestar

Antwort

0

Nur anhand Ihres obigen Codes weisen Sie das Ergebnis von get_Range() nicht einer Variablen zu. Ich erwarte etwas wie ...

private Workbook m_Workbook; // The currently opened Excel file     
...  
dynamic cellValue;  
Worksheet sheet = null; 

try 
{ 
    sheet = (Worksheet)m_Workbook.Worksheets[0]; 
    cellValue = sheet.get_Range("E33").Value2; 
} 
catch (Exception e) 
{ 
... 

Datenvalidierung oder Comboboxen sollten nicht in diesem Faktor. Für Informationen über Text vs Wert vs Wert2, siehe https://fastexcel.wordpress.com/2011/11/30/text-vs-value-vs-value2-slow-text-and-how-to-avoid-it/