工作中经常要用到计算机与设备之间的串口通讯,一些通讯的数据都是存在一个txt文档里,有时需要在excel中打开txt并画出图表,就可以直观快速的得到信息。每次重复的劳动显然是不合理的,也正是显示VBA作用的时候,正好学习一下VBA了。
1.选择文件。对话框类似与OpenFileDIalog。
Dim RlumpLog As String
RlumpLog = Application.GetOpenFilename("txt Txt (*.txt), *.txt", 1)
If RlumpLog = "False" Then Exit Sub
2.打开文件读取数据
Dim fn As Integer, i As Integer
Dim MyStr As String
fn = FreeFile
Open RlumpLog For Input As fn
While Not EOF(fn)
Line Input #fn, MyStr
fr = Split(MyStr, " ")
Cells(i, 1) = fr(0)
Cells(i, 2) = fr(1)
i=i+1
Wend
close fn
Open方法打开文件,Line Input #fn, MyStr将一行数据读取出来,Split将一行数据分割,之后就可以填充表格位置了。填充的过程根据需要配合IF Then Else可以实现很多控制了。
另外Ubound()Lbound()分别是数组可用的最大下标和最小下标,也是很可能用的。
3.画图
Dim ..... '各种定义
With Sheet1
Set myRange = .Range("A1:C15")
Set myChart = .ChartObjects.Add(LEFT, TOP, WIDTH, HEIGHT)
With myChart.Chart
.ChartType = xlXYScatterLines
.SetSourceData Source:=myRange, PlotBy:=xlColumns
' .ApplyDataLabels ShowValue:=True
.HasTitle = True
.ChartTitle.Text = "This is a Title“
End With
End With
Set myRange = Nothing
Set myChart = Nothing
主要是设置好ChartType就行了。
需要用到的各个函数基本就是这样了,具体实现要根据文本内与需要控制了。有了名字,各函数的详细用法很容易Google了。
暂时笔记到此。