2009-07-02 8 views
0

Der Fehler ist hier „Range ist eine Variable, sondern als Methode“Wert ist eine Variable, sondern als Methode verwendet

Ich fügte hinzu, „Microsoft.Office.Interop.Excel“ und es zur Zeit als

mit
Microsoft.Office.Interop.Excel.Workbook SelWorkBook = excelappln1.Workbooks.Open(curfile, 0, false, 5, "", "", false, 
Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, 
false, 0, false, false, false); 

Microsoft.Office.Interop.Excel.Sheets excelSheets = SelWorkBook.Worksheets; 

Microsoft.Office.Interop.Excel.Worksheet excelworksheet = (Microsoft.Office.Interop.Excel.Worksheet)excelSheets.get_Item(CurSheetName); 

Microsoft.Office.Interop.Excel.Range excelRange = excelworksheet.UsedRange; 

object[,] value; 

excelRange = excelworksheet.get_Range(CurTaskNode.DATA_MIN_ROW, CurTaskNode.DATA_MIN_COL); 

value = (object[,])excelRange.Cells.Value2; 

and using the Value to check the cell is locked or not.... 

if (!value (excelworksheet.Cells[CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol]).Locked) 

{ 

// Assigning the Value from reader to the particular cell in excel sheet 

excelworksheet.Cells[CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol] = values[iValueIndex]; 

iValueIndex++; 

} 

es zeigt die errror - Wert eine Variable ist, sondern wie ein Verfahren verwendet ..

mir bitte

Dank helfen

Ramm

+0

Konnte Sie den Code 4 Stellen einrücken, so dass es besser lesbar ist :) – James

Antwort

2

Das Problem ist auf dieser Linie

if (!value (excelworksheet.Cells[CurTaskNode.DATA_MIN_ROW + minRow, CurTaskNode.DATA_MIN_COL + minCol]).Locked) 

Ändern Sie es an:

if (value == null && !excelworksheet.Cells[CurTaskNode.DATA _MIN _ROW + minRow, CurTaskNode.DATA _MIN _COL + minCol]).Locked) 

Der Fehler ausgelöst wird, weil Sie Wert als 2-dimensionale Objektarray und in die erklärt haben, erste Zeile, die Sie versuchen, es zu verwenden ist eine Methode dh! Wert (CellRange) .Locked

+0

Fehler Operator '!' kann nicht auf Operanden vom Typ 'Objekt' angewendet werden \t wird angezeigt, wenn sie wie vorgeschlagen verwendet wird. Bitte helfen Sie Vielen Dank Ramm – Ramm

+0

Sie müssen erklären, was es Ihr versucht, ein wenig klarer für mich zu tun, um eine endgültige Antwort zu geben. – James

+0

Der Grund dafür, dass Sie den obigen Fehler erhalten, liegt darin, dass Sie versuchen, einen booleschen Operator für ein Objektarray zuzuweisen. – James