+ -
当前位置:首页 → 问答吧 → 高手帮忙,对多个文件进行批量的查找替换与汇总

高手帮忙,对多个文件进行批量的查找替换与汇总

时间:2011-08-09

来源:互联网

想对700多个相同格式的文件里的一些数据进行替换,例如:1010112-->>1010111 替换为 津蓟高速 1020206-->>1020205 替换为        滨保高速。如附件,就是将直接数据里类似1010112-->>1010111的信息 全部替换为路段代码里注明的所对应的高速公路的名称。然后再对每条高速的收费进行一下汇总。还请高手指点。

附件

路段代码.rar(10.44 KB)

2011-8-9 16:22, 下载次数: 6

路段数据.rar(115.48 KB)

2011-8-9 16:22, 下载次数: 7

作者: west5555   发布时间: 2011-08-09

欢迎新会员west5555
第一个问题:替换完毕后需要保存该csv文件吗?如果是请测试:
Sub 宏1()
    Dim MyPath$, MyName$, d As Object, arr, i&, j&
    Set d = CreateObject("scripting.dictionary")
    arr = [a1].CurrentRegion
    For i = 1 To UBound(arr)
        d(arr(i, 1)) = arr(i, 2)
    Next
    MyPath = ThisWorkbook.Path & "\"
    MyName = Dir(MyPath & "*.csv")
    Application.ScreenUpdating = False
    Do While MyName <> ""
        With GetObject(MyPath & MyName)
            With .Sheets(1).[a1].CurrentRegion
                arr = .Value
                For j = 5 To UBound(arr, 2) Step 3
                    For i = 1 To UBound(arr)
                        arr(i, j) = d(arr(i, j))
                    Next
                Next
                .Value = arr
            End With
            .Close True
        End With
        MyName = Dir
    Loop
    Application.ScreenUpdating = True
    MsgBox "ok"
End Sub
第二个问题汇总数据放在什么地方?是放在C列?还是其他地方?

作者: zhaogang1960   发布时间: 2011-08-09

你好,谢谢你的帮助,我测试了一下,数据并没有替换,可能是我实在太菜,可不可以把具体的操作步骤写一下。关于汇总数据,我想把汇总的数据放在一个新的excel文件了,不知道能不能实现。谢谢

作者: west5555   发布时间: 2011-08-09

引用:
原帖由 west5555 于 2011-8-9 17:17 发表
你好,谢谢你的帮助,我测试了一下,数据并没有替换,可能是我实在太菜,可不可以把具体的操作步骤写一下。关于汇总数据,我想把汇总的数据放在一个新的excel文件了,不知道能不能实现。谢谢
上面代码有点问题,第一次可以替换并保存,第二次就全部清空了,我想替换应该不是你的需求,汇总才是你的需求吧,如果需要保存修改后的csv文件,代码如下:
Sub 宏1()
    Dim MyPath$, MyName$, d As Object, arr, i&, j&
    Set d = CreateObject("scripting.dictionary")
    arr = [a1].CurrentRegion
    For i = 1 To UBound(arr)
        d(arr(i, 1)) = arr(i, 2)
    Next
    MyPath = ThisWorkbook.Path & "\"
    MyName = Dir(MyPath & "*.csv")
    Application.ScreenUpdating = False
    Do While MyName <> ""
        With GetObject(MyPath & MyName)
            With .Sheets(1).[a1].CurrentRegion
                arr = .Value
                For j = 5 To UBound(arr, 2) Step 3
                    For i = 1 To UBound(arr)
                        If d.Exists(arr(i, j)) Then arr(i, j) = d(arr(i, j)) '加一个判断
                    Next
                Next
                .Value = arr
            End With
            .Close True
        End With
        MyName = Dir
    Loop
    Application.ScreenUpdating = True
    MsgBox "ok"
End Sub

“把汇总的数据放在一个新的excel文件”应该什么问题,请上传这个文件的样式

作者: zhaogang1960   发布时间: 2011-08-09

我直接创建一个宏,然后执行就可以了吗?为什么还是没有替换成功呢?我想执行完以后可以保存一下,以便以后可以查询单辆车的数据
下面是我想输出地收费汇总的文件格式
谢谢

作者: west5555   发布时间: 2011-08-09

引用:
原帖由 west5555 于 2011-8-9 18:17 发表
我直接创建一个宏,然后执行就可以了吗?为什么还是没有替换成功呢?我想执行完以后可以保存一下,以便以后可以查询单辆车的数据
下面是我想输出地收费汇总的文件格式
谢谢
把代码所在的工作簿和需要汇总的csv文件放到一个文件夹中,请看附件:
路段数据.rar (134.62 KB)
路段数据.rar (134.62 KB)
下载次数: 4
2011-8-9 18:33

作者: zhaogang1960   发布时间: 2011-08-09

谢谢,已经可以运行了,如果可以输出汇总数据文件,还请帮忙,谢谢

作者: west5555   发布时间: 2011-08-09

相关阅读 更多