Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用带有excel宏的文本文件创建csv文件_Excel_Vba - Fatal编程技术网

使用带有excel宏的文本文件创建csv文件

使用带有excel宏的文本文件创建csv文件,excel,vba,Excel,Vba,使用第3列中的值为小时的文本文件,我想使用excel宏创建一个csv文件 其目的是创建一个csv文件(3行),该文件将进行竞争 1 line = minimum and maximum value in column 3 2 line = write in 24 columns ( 0,1,2,3,4,5 ect ) 3 line = count values for each hour, if no value is found for specific hour.. then print 0

使用第3列中的值为小时的文本文件,我想使用excel宏创建一个csv文件

其目的是创建一个csv文件(3行),该文件将进行竞争

1 line = minimum and maximum value in column 3
2 line = write in 24 columns ( 0,1,2,3,4,5 ect )
3 line = count values for each hour, if no value is found for specific hour.. then print 0
输入文件

123 3 04
122 3 03
122 3 03
122 3 04
122 4 04
122 5 05
122 3 12
122 4 15
122 5 21
122 5 20
122 5 20
所需输出

3,21
0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23
0,0,0,2,3,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,2,1,0,0
提前谢谢。

试试看

Sub test()
    Dim Path As String, Fn As String
    Dim vDB, vR(), vText1(), vText2()
    Dim wf As WorksheetFunction
    Dim rngDB As Range
    Dim strResult As String
    Dim myMin As Integer, myMax As Integer
    Dim i As Long


    Set rngDB = Range("c1", Range("c" & Rows.Count).End(xlUp))
    Set wf = WorksheetFunction

    vDB = Range("a1").CurrentRegion


    ReDim vR(1 To 3)

    myMin = wf.Min(rngDB)
    myMax = wf.Max(rngDB)
    vR(1) = myMin & "," & myMax
    ReDim vText1(23): ReDim vText2(23)
    For i = 0 To 23
        vText1(i) = i
        vText2(i) = wf.CountIf(rngDB, i)
    Next i
    vR(2) = Join(vText1, ",")
    vR(3) = Join(vText2, ",")
    strResult = Join(vR, vbCrLf)

    Path = ThisWorkbook.Path & "\"
    Fn = "test1.csv"
    Fn = Path & Fn
    TransToCsv strResult, Fn
End Sub
Sub TransToCsv(strTxt As String, strFile As String)
    Dim objStream As Object
    Set objStream = CreateObject("ADODB.Stream")

    With objStream
        '.Charset = "utf-8"
        .Open
        .WriteText strTxt
        .SaveToFile strFile, 2
        .Close
    End With
    Set objStream = Nothing

End Sub

我使用以下宏获得了所需的输出

Sub Macro1()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    Set l1 = ThisWorkbook
    ruta = l1.Path & "\"
    arch = "file.txt"
    Workbooks.OpenText Filename:=ruta & arch & ".txt", _
        Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, _
        TextQualifier:=xlNone, ConsecutiveDelimiter:=True, _
        Tab:=True, Semicolon:=False, Comma:=False, Space:=True, Other:=False, _
        FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
    Set l2 = ActiveWorkbook
    Set h2 = l2.Sheets(1)
    Set h3 = l2.Sheets.Add
    h3.Cells(1, "A").Value = WorksheetFunction.Min(h2.Columns("C"))
    h3.Cells(1, "B").Value = WorksheetFunction.Max(h2.Columns("C"))
    For i = 0 To 23
        h3.Cells(2, i + 1).Value = i
        h3.Cells(3, i + 1).Value = WorksheetFunction.CountIf(h2.Columns("C"), i)
    Next
    l2.SaveAs Filename:=ruta & arch & ".csv", FileFormat:=xlCSV, CreateBackup:=False
    l2.Close False
    MsgBox "File CSV created", vbInformation
End Sub

你试过什么?你被困在哪里了?嗨,你是个好车手。请回答。我是VBA宏的新手。。请帮我拿这个箱子。。学习VBa最好的培训课程是什么。。是我所见过的最好的英语单词。谢谢你的帮助和建议。你好!首先,您需要向我们展示您的代码。到目前为止你做了什么?也请查收