数据集上的VBA输入

问题描述 投票:0回答:1

谢谢你抽出时间点击这个问题。我一直在将这个数据集放在我的vba代码上时遇到问题。我总是继续获取​​文件'溢出'然后'文件已经打开'错误。我使用的数据集是一段时间内功耗的数据记录。这组数据意味着要放入7个数组中。这些是数据集。

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
excel vba excel-vba file input
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.