学习VBA 之一

 工作中经常要用到计算机与设备之间的串口通讯,一些通讯的数据都是存在一个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了。 


暂时笔记到此。                               


### 回答1: VBA是Visual Basic for Applications的缩写,是一种在Microsoft Office套件中使用的编程语言。要在VBA中控制下位机进行串口通信,可以按照以下步骤进行操作: 1. 引用VBA串口通信库:在VBA编辑器中,点击"工具"菜单,选择"引用"。在弹出的对话框中,勾选"Microsoft Comm Control"或类似的串口通信库,并点击确定。 2. 实例化并配置串口控件:在VBA代码中,使用"Dim"关键字声明一个串口控件对象,并使用"Set"关键字初始化。然后,通过控件的属性方法,如"PortOpen"、"PortNumber"和"BaudRate"等来配置串口参数。 3. 打开串口连接:使用控件的"PortOpen"方法打开串口连接,如果成功打开,则可以进行数据的发送和接收。 4. 发送数据:使用控件的"Output"方法向下位机发送数据。可以将要发送的数据作为参数传递给"Output"方法。 5. 接收数据:使用控件的"Input"方法从下位机接收数据。可以通过调用"Input"方法,并将接收到的数据保存在变量中。 6. 关闭串口连接:在需要关闭串口连接时,使用控件的"PortOpen"方法来关闭串口。 需要注意的是,以上步骤仅提供了基本的串口通信操作示例,具体实现还需要根据下位机的协议和通信方式进行相应的调整。另外,还可以在VBA中添加错误处理的代码来处理异常情况,以保证通信的稳定性和可靠性。 ### 回答2: VBA(Visual Basic for Applications)是一种编程语言,可以用于在Microsoft Office应用程序中编写宏和自动化任务。在使用VBA控制下位机进行串口通信时,我们可以通过利用Windows系统提供的通信API,使用VBA代码与下位机进行数据交换。 首先,我们需要引用Windows API函数,这可以通过在VBA代码模块中使用Declare语句来实现。相关的API函数包括CreateFile、ReadFile、WriteFile、SetCommState等等,这些函数允许我们打开串口连接、读取和写入数据,并设置串口的通信参数。 接下来,我们可以编写VBA代码来打开串口连接。使用CreateFile函数,我们可以指定串口的名称(例如COM1、COM2等),设置通信参数和访问模式,并返回一个文件句柄。 一旦我们建立了与下位机的串口连接,就可以使用ReadFile和WriteFile函数来进行数据的收发。通过设置正确的参数,我们可以读取下位机发送的数据,并将数据存储在VBA变量中。同样地,我们也可以使用WriteFile函数将数据发送到下位机。 最后,我们可以使用SetCommState函数来配置串口的通信参数,例如波特率、数据位、校验位等等。这是非常重要的,因为上位机和下位机之间必须使用相同的通信参数进行数据传输。 通过以上的步骤,我们可以在VBA中实现对下位机的串口通信控制。在实际应用中,我们可能还需要添加错误处理、数据解析和其他功能来完善我们的应用程序。 ### 回答3: VBA(Visual Basic for Applications)是一种用于在Microsoft Office应用程序中编写宏的语言。通过使用VBA,我们可以编写代码来控制串口通信并与下位机进行通信。 首先,我们需要在VBA代码中引用“MSComm”组件,该组件用于实现串口通信功能。接下来,我们需要设置串口的一些参数,如波特率、数据位、校验位等。 然后,我们可以使用VBA代码编写串口通信的主要功能,如读取下位机发送的数据、向下位机发送数据或指令等。在VBA中,我们可以使用MSComm组件的相关属性和方法来实现这些功能。 例如,我们可以使用“MSComm.Output”方法向下位机发送数据。该方法接受一个参数,即要发送的数据。我们还可以使用“MSComm.Input”方法来读取下位机发送的数据。 在处理串口数据时,需要注意处理数据的格式和解析规则。下位机传输的数据可能是二进制数据,我们需要根据具体的数据格式进行解析和处理。 此外,在串口通信中,还需要处理异常情况和错误处理。我们可以使用VBA的错误处理机制来处理这些异常,并采取相应的措施。 总的来说,通过使用VBA和MSComm组件,我们可以在Microsoft Office应用程序中编写串口通信控制下位机的代码。在这个过程中,我们需要设置串口参数、发送和接收数据,并注意处理数据格式和错误情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值