首页 > 技巧 > 用VBS完成对Excel数据的自动整理

用VBS完成对Excel数据的自动整理

这也是2009年休养时期的工作,首发于09年11月6日。现在这里把代码和大家分享一下。 因当时需要用EXCEL处理GPIB采集到的万用表数据,而因为GPIB卡和表的兼容性问题,采集出来的数据常有空行、乱码或者明显错误(比如10V电压采集到999.xxxxV),导入后要人工挑对表格格式进行调整、选出这些错误的数据并删除,非常麻烦。 于是就学习了半小时的VBA写了个宏,完成导入数据的半自动整理,剔除无效数据(比如GPIB采集出来的乱码,还有明显错误的电压)。 Excel的VBA还真的比较好用,虽然只是个算不得程序的小工具,但是在当时极大的提高了我的工作效率。

Sub 自动清理()
Dim i As Integer
f = [c1].CurrentRegion
For i = 1 To UBound(f)
For j = 1 To UBound(f, 2)
If f(i, j) < 9 Then f(i, j) = ""    '9是无效数据下限
If f(i, j) > 11 Then f(i, j) = ""    '11是无效数据上限
Next j, i
[c1].Resize(UBound(f), UBound(f, 2)) = f
'以下代码作用为删除空列,同时清空了无效数据所在的列.
Range("E1:E100").SpecialCells(4).EntireRow.Delete

    i = ActiveWorkbook.Sheets(1).Range("iv1").End(xlToLeft).Column
    Do While i >= 1
        If ActiveWorkbook.Sheets(1).Cells(1, i) = "" Then    '第一行数据最全最长,选取第一行搜索空值,确定空列。
            ActiveSheet.Columns(i).Select
            Selection.Delete Shift:=xlToLeft
        End If
        i = i - 1
    Loop
End Sub

用法:在EXCEL里按ALT+F11,粘贴上面的代码. 就可以在工具->宏中看到,运行即可. 需要导入数据为标准格式(A列时间,B列温度,C列电压)

总共学了三十分钟的VBA,难免有疏漏之处.如果有朋友有更好的解决方案,烦请指教!我会参考您的建议修改本文.

技巧
  1. 还没有评论
评论提交中, 请稍候...
说点什么再走吧!0

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks