2009-08-03 7 views
0

私はこれを試してみた:VB.net:Excelワークシートから文字列オブジェクトにデータを取得する方法は?

'start Excel app 
    Dim exApp As Microsoft.Office.Interop.Excel.Application 
    exApp = CreateObject("Excel.Application") 

    ' load excel document 
    exApp.Workbooks.Open(fname) 
    Dim exSheet As Microsoft.Office.Interop.Excel.Worksheet 
    exSheet = exApp.Workbooks(1).Worksheets(1) 

と "C3" のセルにアクセスする例えば、以下:

Dim b As String 
b = exSheet.Cells("A3") 

か:

b = exSheet.Cells(3,3) 

、それは私に例外をスローします。私はオブジェクトアクセスに何か間違っていると感じていますが、このメソッドは埋め込みVBで動作し、.NETでは動作しません。 また、関連する結果のない例外コードをGoogleに送信しようとしました。

答えて

2

てみてください次のようになります。

b = exSheet.Range("A3").Value.ToString 
+0

ありがとう、これは正常に動作します。 Do Rangeメソッドは、スプレッドシートを反復処理する(x、y)のような別のパラメータを取得しますか? – Anton

+1

ええと、あなたは.Cellsを使うことができますが、exSheet.Cells()(3,3).Value2 – Mark

1

私はvb.netのVB6スタイルでコードを書くべきではないと思います。

のコード例を見ると、私は何が必要だと思うEDIT

b = exSheet.Cells(3,3).Text 

または

b = exSheet.Cells(3,3).Value 
です:私はそれが参照範囲のインスタンスに割り当てられる必要がありますね。
ので、コードが

Range exampleRange = exSheet.Cells(3,3) 
b = exampleRange.Text 'OR it can be b = exampleRange.Value 
+1

インテリセンスが、私の唯一のToStringメソッドを示し等しい、GetHashCodeメソッド、メソッドGetTypeとも参照。私はそれらの1つを使うべきですか? – Anton

関連する問題