2017-12-26 19 views
0

この質問をクリックしていただきありがとうございます。私はこのデータセットを私のvbaコードに置くことに問題がありました。私はいつもファイルを「オーバーフロー」してから、「ファイルはすでに開いています」というエラーを出し続けます。私が使用しているデータセットは、時間の経過に伴う消費電力のデータ記録です。このデータセットは7つの配列に格納されます。これらはデータセットです。データセットのVBA入力

https://data.world/databeats/household-power-consumption

は私のコードの何が問題になっているのですか?助言がありますか? ありがとうございます。

私のコードは、これまで

Dim ID(50) As String, Day(50) As Date 
Dim Time(50) As Integer, GlobelActivePower(50) As Integer 
Dim Sub1(50) As Integer, Sub2(50) As Integer, Sub3(50) As Integer 
Public N As Integer 

Sub ReadFileSmall() 
Dim Infile As String 
Infile = ThisWorkbook.Path & "\Power_smallDataset.csv" 
    Open Infile For Input As #1 
    N = 0 

    Do Until EOF(1) 
     Input #1, ID(N), Day(N), Time(N), GlobelActivePower(N), Sub1(N), 
     Sub2(N), Sub3(N) 
     N = N + 1 
    Loop 

Range("A4").Select 
For indx = 0 To N - 1 
    ActiveCell.Offset(indx, 0).Value = ID(indx) 
    ActiveCell.Offset(indx, 1).Value = Day(indx) 
    ActiveCell.Offset(indx, 2).Value = Time(indx) 
    ActiveCell.Offset(indx, 4).Value = GlobelActivePower(indx) 
    ActiveCell.Offset(indx, 5).Value = Sub1(indx) 
    ActiveCell.Offset(indx, 6).Value = Sub2(indx) 
    ActiveCell.Offset(indx, 7).Value = Sub3(indx) 
Next 

Close #1 

End Sub 

答えて

0

配列サイズは奇妙です。 以下はcsvファイルのデータです。

Sub ReadFileSmall() 
    Dim Infile As String 
    Dim vDB 
    Infile = ThisWorkbook.Path & "\Power_smallDataset.csv" 

    Workbooks.Open Filename:=Infile, Format:=2 
    With ActiveSheet 
     vDB = .UsedRange 
    End With 
    ActiveWorkbook.Close (0) 

    Range("A4").Resize(UBound(vDB, 1), ubouns(vDB, 2)) = vDB 
End Sub 
関連する問題