aqtd 发表于 2017-9-5 15:02:45

excel中的VBA遍历目录中excel替换字符转成au3【已解决】

本帖最后由 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
下面是测试附件

kk_lee69 发表于 2017-9-5 15:48:39

回复 1# aqtd


    問問題嗎??
還是發錯地方??

aqtd 发表于 2017-9-5 19:13:09

回复 2# kk_lee69


    是问问题,是把VBA代码转成AU3的。
上面的代码是VBA的。
可能我没说清楚,报谦

yamakawa 发表于 2017-9-5 19:21:54

问问题还收费?我就呵呵

kk_lee69 发表于 2017-9-5 19:55:19

回复 3# aqtd

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

這樣還會有人願意幫你嗎??

aqtd 发表于 2017-9-5 20:07:34

回复aqtd

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

這樣還會有人願意幫你嗎??
kk_lee69 发表于 2017-9-5 19:55 http://www.autoitx.com/images/common/back.gif


    不好意思,搞错了,我还以为是帮我解决问题了我付给金币表示感谢。

aqtd 发表于 2017-9-5 20:08:38

问问题还收费?我就呵呵
yamakawa 发表于 2017-9-5 19:21 http://www.autoitx.com/images/common/back.gif


    是我搞错了,我以为是帮我解决了问题我付给金币表示感谢。

yamakawa 发表于 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
$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,"","替换完成,请自行检查!")

aqtd 发表于 2017-9-6 14:09:47

回复 8# yamakawa


    感谢大大,没毛病。一次过。牛

king8462 发表于 2017-9-10 08:36:33

以前搞过word的替换,大同小异。
页: [1]
查看完整版本: excel中的VBA遍历目录中excel替换字符转成au3【已解决】