VBA应用实战案例(4)

应用VBA来处理日常数据时,数据格式经常不是用一个格式,而VBA在excel中具有非常强大的能力,因此将数据读取到excel进行处理是比较方便和高效的。

VBA应用实战案例(3)中已经有excel数据写入到文本文档中的例子,那这个例子就是逆过程,需要将文本文档中的部分数据读取到excel中,并进行处理。

读取
函数/公式
VBA单元格操作
文本文档
Excel原始数据
结果
Sub Data()
    BookName = ThisWorkbook.Name
    Set shRaw = Workbooks(BookName).Sheets("Raw")
    
    Dim fso As Object, sFile As Object, blnExist As Boolean  '定义变量类型
    
    Dim FileName As String, LineText As Variant, i As Integer  '定义变量类型
    
    Const ForReading = 1
    
    Set fso = CreateObject("Scripting.FileSystemObject")    '创建FileSystemObject对象
    
    ChDrive "D"
    ChDir "D:\Data source\May\DAILY"
    
    Openfilename = Application.GetOpenFilename("raw files (*.dat), *.dat")  '打开.dat格式文件

    blnExist = fso.FileExists(Openfilename) '判断文件是否存在,如果不存在,则退出过程
    
    If Not blnExist Then MsgBox "文件不存在!": Exit Sub  
    
    Set sFile = fso.OpenTextFile(Openfilename, ForReading) '创建并打开名为sFile的TextStream对象

    Do While Not sFile.AtEndOfStream    '如果不是文本文件的尾端,则读取数据
        
        LineText = sFile.ReadLine  '逐行读取文本文件
        
        If LineText <> "" Then
           Data_Text = Split(LineText, " ")  '若字符串不为空,则拆分字符串
            Else
        End If
        Data_Text = Data_Text(Ubound(Data_Text))  '获取拆分后的最后一个字符串
        
        If Data_Text = "Calibration" Then  '对最后一个字符串进行批判断
            Mon_k = Mon_k + 1
            Else
        End If
    Loop
   	shRAW.range("A1")=mon_k
    sFile.Close 0  '关闭文本文件,不保存变更
    Set fso = Nothing  '清空对象变量
    Set sFile = Nothing  '清空对象变量
    
End Sub

上述代码是展示的主要是将文本文档需要的部分读入excel中的操作,实际应用中读取的内容需要根据实际来设定,将文本内容批量读入excel后,二次处理就变得容易,无论是用公式或者vba代码都可以,那么到这一步就变成了对excel单元格的操作了。

代码的核心部分就是如何读取文本文档中符合条件的字符串,通常的策略是通过split拆分字符串,并将符合条件的片段循环写入(或者用数组写入)指定的单元格,得到原始数据后,进一步操作单元格进行处理,进而得到目标结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值