找回密码
 加入
搜索
查看: 2316|回复: 9

[系统综合] excel中的VBA遍历目录中excel替换字符转成au3【已解决】

  [复制链接]
发表于 2017-9-5 15:02:45 | 显示全部楼层 |阅读模式
本帖最后由 aqtd 于 2017-9-6 14:11 编辑

excel 中的VBA代码,遍历所在工作目录中的工作薄并替换指定的字符(不是整个单元格内容)。请教转成AU3的代码
VBA代码如下:
Sub Macro1()
    Dim MyPath$, MyName$, sh As Worksheet
    Application.ScreenUpdating = False
    MyPath = ThisWorkbook.Path & ""
    MyName = Dir(MyPath & "*.xlsx")
    Do While MyName <> ""
        If MyName <> ThisWorkbook.Name Then
            With Workbooks.Open(MyPath & MyName)
                For Each sh In .Sheets
                    
                    sh.UsedRange.Replace "2016", "2017", xlPart
                    sh.UsedRange.Replace "2015", "2017", xlPart
                    sh.UsedRange.Replace "A", "B", xlPart
                Next
                .Close True
            End With
        End If
        MyName = Dir
    Loop
    Application.ScreenUpdating = True
    MsgBox "ok"
End Sub
下面是测试附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-9-5 15:48:39 | 显示全部楼层
回复 1# aqtd


    問問題嗎??
還是發錯地方??
 楼主| 发表于 2017-9-5 19:13:09 | 显示全部楼层
回复 2# kk_lee69


    是问问题,是把VBA代码转成AU3的。
上面的代码是VBA的。
可能我没说清楚,报谦
发表于 2017-9-5 19:21:54 | 显示全部楼层
问问题还收费?我就呵呵
发表于 2017-9-5 19:55:19 | 显示全部楼层
回复 3# aqtd

看你的問題得要收費  你沒發現嗎??

這樣還會有人願意幫你嗎??
 楼主| 发表于 2017-9-5 20:07:34 | 显示全部楼层
回复  aqtd

看你的問題得要收費  你沒發現嗎??

這樣還會有人願意幫你嗎??
kk_lee69 发表于 2017-9-5 19:55



    不好意思,搞错了,我还以为是帮我解决问题了我付给金币表示感谢。
 楼主| 发表于 2017-9-5 20:08:38 | 显示全部楼层
问问题还收费?我就呵呵
yamakawa 发表于 2017-9-5 19:21



    是我搞错了,我以为是帮我解决了问题我付给金币表示感谢。
发表于 2017-9-5 21:46:56 | 显示全部楼层
没看你的vba。反正这个很简单,就随便给你写了个,,debug什么都没做,细节请自行补上
#include <Array.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
#include <Excel.au3>

    Local $aFileList = _FileListToArray(@ScriptDir, "*.xlsx")
Local $oWorkbook
    _ArrayDisplay($aFileList, "$aFileList")

Local $oExcel = _Excel_Open();静默替换,这里参数设为0或者FALSE
If @error Then Exit MsgBox(16, "", "EXCEL对象创建失败.")

For $i = 1 To $aFileList[0]
$oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "" & $aFileList[$i])
If @error Then MsgBox($MB_SYSTEMMODAL, "", $aFileList[$i] & "文件打开失败 ")

_Excel_RangeReplace($oWorkbook, Default, Default, "工具", "yamakawa的杰作") 
;第三个参数你要替换的字符串
;第四个参数,替换后的文件


Sleep(1000)
_Excel_BookClose($oWorkbook)
Next
_Excel_Close($oExcel)
MsgBox(0,"","替换完成,请自行检查!")
 楼主| 发表于 2017-9-6 14:09:47 | 显示全部楼层
回复 8# yamakawa


    感谢大大,没毛病。一次过。牛
发表于 2017-9-10 08:36:33 | 显示全部楼层
以前搞过word的替换,大同小异。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 23:45 , Processed in 0.092531 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表