2012-02-28 20 views
1

我有以下代碼遍歷一個Excel文件,並能正常工作vb.net連鑄造後對象的實例不會消失

請注意,下面一行就很好地工作(文件夾而先前在代碼中設置)

Console.WriteLine("Value found in {1}: {0} ", Obj.Text, folder) 

For Each xlWorkSheet In xlWorkBook.Worksheets 
    For rCnt As Integer = 2 To xlWorkSheet.UsedRange.Rows.Count 'we start at 2 becuase we do not need the first header row 

     For cCnt As Integer = 1 To xlWorkSheet.UsedRange.Columns.Count 

      Dim Obj As Range = CType(xlWorkSheet.UsedRange.Cells(rCnt, cCnt), Range) 

      Console.WriteLine("Value found in {1}: {0} ", Obj.Text, folder) 

     Next 


     RaiseEvent ImportChanged() 
    Next 

Next 

但我想,以填補該項目的字典,但現在我這樣做,它會抱怨「不是全部的我物體的狀態「,即使我把它轉換爲Cstr()或使用.toString

任何人都知道爲什麼?

Dim EntryDetails As Dictionary(Of String, String) 

     For Each xlWorkSheet In xlWorkBook.Worksheets 
      For rCnt As Integer = 2 To xlWorkSheet.UsedRange.Rows.Count 'we start at 2 becuase we do not need the first header row 

       For cCnt As Integer = 1 To xlWorkSheet.UsedRange.Columns.Count 

        Dim Obj As Range = CType(xlWorkSheet.UsedRange.Cells(rCnt, cCnt), Range) 

        Console.WriteLine("Value found in {1}: {0} ", Obj.Text, folder) 
        EntryDetails.Add("demo", Obj.Text) ' THIS DOESNT WORK 
        EntryDetails.Add("demo", Obj.Text.ToString) ' THIS DOESNT WORK 
        EntryDetails.Add("demo", CStr(Obj.Text)) ' THIS DOESNT WORK 

       Next 


       RaiseEvent ImportChanged() 
      Next 

     Next 
+0

作品很好,我的意思是,它實際上顯示文字值... – renevdkooi 2012-02-28 09:11:35

回答

3

您尚未創建的EntryDetails

實際實例New關鍵字添加到第一行,以便調用構造函數:

Dim EntryDetails As New Dictionary(Of String, String) 

For Each xlWorkSheet In xlWorkBook.Worksheets 
    // ... 
Next 
+0

omg ...我怎麼可能錯過了!謝謝! – renevdkooi 2012-02-28 09:19:12

+0

所有時間都會發生,歡迎您:-) – 2012-02-28 09:22:37

+1

這是學習使用調試器的一個很好的理由。你可以很容易地檢查哪個對象是空的。 – 2012-02-28 14:51:38