2012-02-06 9 views
0

私はExcel文書を読み込んでメッセージボックスに表示するプログラムを作った。しかし、問題は、別の行または列を選択することを知らずに、すべてのメッセージをメッセージボックスに表示することです。私はこのコードを書いた:akaをスクラップする方法vb6のExcel文書の全内容を表示

Private Sub Command1_Click() 
    On Error GoTo Err 

    StartExcel 

    Set ExcelWBk = Excel.Workbooks.Open(App.Path & "\Dataku.xls") 
    Set ExcelWS = ExcelWBk.Worksheets(1) 
    With ExcelWS 

    Dim i As Integer 
    Dim strData As String 

    For i = 1 To 5 

     strData = strData & .Cells(i, 1) & vbCrLf 
    Next i 
    End With 

    MsgBox strData 
    CloseWorkSheet 
    ClearExcelMemory 
    Exit Sub 
Err: 
    ClearExcelMemory 
End Sub 

しかし、それはその列(列1)のデータに戻った。私は全体のExcelファイルを読む必要があります。 (私はVB6を持っていけないようPowerPointでテストした)このような

答えて

0

何かが

Plsのが合うようにあなたのファイルパスを変更する(効率のための配列を使用して)細胞による第一シートのセルのUsedRangeを取得します。

最初のバージョン - PowerPointでテスト

Sub GetData() 
Dim objExcel As Object 
Dim objWB As Object 
Dim objws As Object 
Dim X As Variant 
Dim lngCol As Long 
Dim lngRow As Long 
Dim strOut As String 


Set objExcel = CreateObject("Excel.Application") 
On Error Resume Next 
Set objWB = objExcel.Workbooks.Open("c:\temp\test.xlsx") 
Set objws = objWB.Sheets(1) 
On Error GoTo 0 
If objws Is Nothing Then Exit Sub 

'recalc usedrange 
objws.usedrange 
X = objws.usedrange 
For lngRow = 1 To UBound(X, 1) 
    For lngCol = 1 To UBound(X, 2) 
     strOut = strOut & (X(lngRow, lngCol) & vbNewLine) 
    Next 
Next 

objWB.Close False 
objExcel.Quit 
Set objExcel = Nothing 
If Len(strOut) > 0 Then MsgBox strOut 
End Sub 

VBSバージョン

Dim objExcel 
Dim objWB 
Dim objws 
Dim X 
Dim lngCol 
Dim lngRow 
Dim strOut 

Set objExcel = CreateObject("Excel.Application") 
On Error Resume Next 
Set objWB = objExcel.Workbooks.Open("c:\temp\test.xlsx") 
Set objws = objWB.Sheets(1) 
On Error GoTo 0 
If IsEmpty(objws) Then Stop 

'recalc usedrange 
objws.usedrange 
X = objws.usedrange 
For lngRow = 1 To UBound(X, 1) 
    For lngCol = 1 To UBound(X, 2) 
     strOut = strOut & (X(lngRow, lngCol) & vbNewLine) 
    Next 
Next 

objWB.Close False 
objExcel.Quit 
Set objExcel = Nothing 
If Len(strOut) > 0 Then MsgBox strOut 
+0

それだけ点滅していますし、何があなたのファイルパスに更新しました – user1072976

+0

が起こるのか? – brettdj

関連する問題