使用带有excel宏的文本文件创建csv文件
使用第3列中的值为小时的文本文件,我想使用excel宏创建一个csv文件 其目的是创建一个csv文件(3行),该文件将进行竞争使用带有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
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最好的培训课程是什么。。是我所见过的最好的英语单词。谢谢你的帮助和建议。你好!首先,您需要向我们展示您的代码。到目前为止你做了什么?也请查收