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
下面是测试附件
回复 1# aqtd
問問題嗎??
還是發錯地方?? 回复 2# kk_lee69
是问问题,是把VBA代码转成AU3的。
上面的代码是VBA的。
可能我没说清楚,报谦 问问题还收费?我就呵呵 回复 3# aqtd
看你的問題得要收費你沒發現嗎??
這樣還會有人願意幫你嗎?? 回复aqtd
看你的問題得要收費你沒發現嗎??
這樣還會有人願意幫你嗎??
kk_lee69 发表于 2017-9-5 19:55 http://www.autoitx.com/images/common/back.gif
不好意思,搞错了,我还以为是帮我解决问题了我付给金币表示感谢。 问问题还收费?我就呵呵
yamakawa 发表于 2017-9-5 19:21 http://www.autoitx.com/images/common/back.gif
是我搞错了,我以为是帮我解决了问题我付给金币表示感谢。 没看你的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,"","替换完成,请自行检查!") 回复 8# yamakawa
感谢大大,没毛病。一次过。牛 以前搞过word的替换,大同小异。
页:
[1]