博奧清單導出Excel后單位批量替換


博奧清單V17中,單位平方米和立方米的數字均為上標顯示。為使打印出來后易於分辨,應BOSS要求,在導出Excel后將其修改為“m2”和“m3”。

VBS批量修改代碼:

Option Explicit

If Wscript.Arguments.Count = 0 Then
    WScript.Echo Chr(10) & _
    "[正確操作]" & Chr(10) & Chr(10) & _
    Chr(9) & "拖拽導出的Excel文件到本程序" & Chr(10) & Chr(10) & _
    "[錯誤操作]" & Chr(10) & Chr(10) & _
    Chr(9) & "雙擊本程序"
    WScript.Quit
End If

Dim xlsFilePath
xlsFilePath=WScript.Arguments(0)

Dim Wshell
Set Wshell=CreateObject("Wscript.Shell")

If LCase(Right(WScript.FullName,11)) = "wscript.exe" Then
    Wshell.Run "CScript.exe //nologo" & _
    Chr(32) & _
    Chr(34) & WScript.ScriptFullName & Chr(34) & _
    Chr(32) & _
    Chr(34) & WScript.Arguments(0) & Chr(34)
    WScript.Quit
End If

WScript.Echo "正在運行,請等待......"

Dim oExcel,oWorkbook,Sheet
On Error Resume Next
Set oExcel = GetObject(,"Excel.Application")
If Err Then
    WScript.Echo Err.Description
    Err.Clear
    Set oExcel = CreateObject("Excel.Application")
    oExcel.Visible = False
End If
Set oWorkbook = oExcel.Workbooks.Open(xlsFilePath)
If Err Then
    Err.Clear
    Wshell.Popup "無法打開指定的文件,可能的原因有:" & Chr(10) & _
    "1、本機沒有安裝Microsoft Office 2003、2007、2010或以上版本。" & Chr(10) & _
    "2、需要處理的文件已經打開或被其它程序占用,請關閉文件后重新使用本程序。", 10 , "提示", 16+4096
    WScript.Quit
End If
On Error Goto 0
oExcel.DisplayAlerts = False

Dim CurrentPath
CurrentPath = CreateObject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.Path
For Each Sheet In oWorkbook.Worksheets
    Sheet.Activate
    Wscript.Echo "Replace:" & Sheet.Name
    oExcel.Cells.Replace "", "m2", 2, 1, False, False, False
    oExcel.Cells.Replace "", "m2", 2, 1, False, False, False
    oExcel.Cells.Replace "", "m3", 2, 1, False, False, False
    oExcel.Cells.Replace "延長米", "m", 2, 1, False, False, False
Next
oWorkbook.Worksheets(1).Select
oWorkbook.Save
oExcel.DisplayAlerts = True
oWorkbook.Close

Set oExcel = Nothing
Set oWorkbook = Nothing

Wshell.Popup "經過一段時間的浴血奮戰,終於搞定了所有的單位替換。", 10, "博奧單位替換", 48

 VBS批量修改代碼(讀取“替換列表.txt”文件,循環替換)

Option Explicit

If Wscript.Arguments.Count = 0 Then
    WScript.Echo Chr(10) & _
    "[正確操作]" & Chr(10) & Chr(10) & _
    Chr(9) & "拖拽導出的Excel文件到本程序" & Chr(10) & Chr(10) & _
    "[錯誤操作]" & Chr(10) & Chr(10) & _
    Chr(9) & "雙擊本程序"
    WScript.Quit
End If

Dim xlsFilePath
xlsFilePath=WScript.Arguments(0)

Dim Wshell
Set Wshell=CreateObject("Wscript.Shell")

If LCase(Right(WScript.FullName,11)) = "wscript.exe" Then
    Wshell.Run "CScript.exe //nologo" & _
    Chr(32) & _
    Chr(34) & WScript.ScriptFullName & Chr(34) & _
    Chr(32) & _
    Chr(34) & WScript.Arguments(0) & Chr(34)
    WScript.Quit
End If

WScript.Echo "正在運行,請等待......"

Dim oExcel,oWorkbook,Sheet

On Error Resume Next

Set oExcel = GetObject(,"Excel.Application")
If Err Then
    WScript.Echo Err.Description
    Err.Clear
    Set oExcel = CreateObject("Excel.Application")
    oExcel.Visible = False
End If

Set oWorkbook = oExcel.Workbooks.Open(xlsFilePath)
If Err Then
    Err.Clear
    Wshell.Popup "無法打開指定的文件,可能的原因有:" & Chr(10) & _
    "1、本機沒有安裝Microsoft Office 2003、2007、2010或以上版本。" & Chr(10) & _
    "2、需要處理的文件已經打開或被其它程序占用,請關閉文件后重新使用本程序。", 10 , "提示", 16+4096
    WScript.Quit
End If

On Error Goto 0

Dim fso,oFile
Set fso = CreateObject("Scripting.FileSystemObject")

Dim strLine
Dim strArr

Dim CurrentPath
CurrentPath = CreateObject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.Path

oExcel.DisplayAlerts = False
For Each Sheet In oWorkbook.Worksheets
    Sheet.Select
    Sheet.Activate
    WScript.Echo Sheet.Name
    Set oFile = fso.OpenTextFile(CurrentPath & "\替換列表.txt", 1)
    Do While oFile.AtEndOfStream <> True
        strLine = oFile.ReadLine
        strArr = Split(strLine,"")
        oExcel.Cells.Replace strArr(0), strArr(1), 2, 1, False, False, False
    Loop
    oFile.Close
Next
oWorkbook.Worksheets(1).Select
oWorkbook.Save
oExcel.DisplayAlerts = True
oWorkbook.Close

Set oFile = Nothing
Set oExcel = Nothing
Set oWorkbook = Nothing

Wshell.Popup "經過一段時間的浴血奮戰,終於搞定了所有的單位替換。", 10, "博奧單位替換", 48

“替換列表.txt”樣例:

古民居04號→04號古民居(羅滿才)修繕工程
古民居05號→05號古民居(鄧耀柱)修繕工程
古民居06號→06號古民居修繕工程
古民居09號→09號古民居修繕工程
古民居11號→11號古民居(鄧耀梓)修繕工程
古民居12號→12號古民居(鄧秋陽)修繕工程
古民居13號→13號古民居(鄧亞貴)修繕工程
古民居15號→15號古民居修繕工程
古民居18號→18號古民居修繕工程
古民居19號→19號古民居(鄧國天)修繕工程
古民居27號→27號古民居(鄧耀梓祖屋)修繕工程
古民居28號→28號古民居修繕工程
古民居29號→29號古民居修繕工程
古民居31號→31號古民居(鄧耀梓)修繕工程
古民居32號→32號古民居修繕工程
古民居33號→33號古民居(廖家祖屋)修繕工程
古民居34號→34號古民居(羅家祖屋)修繕工程
古民居35號→35號古民居(羅家祖屋)修繕工程
古民居36號→36號古民居(羅家祖屋)修繕工程
古民居37號→37號古民居(羅家祖屋)修繕工程
古民居38號→38號古民居(楊家祖屋)修繕工程
閘門01→閘門一修繕工程
閘門02→閘門二修繕工程
閘門03→閘門三修繕工程
閘門04→閘門四修繕工程
閘門05→閘門五修繕工程
閘門06→閘門六(廖家閘門)修繕工程
閘門07→閘門七(羅家閘門)修繕工程
閘門08→閘門八(二閘)修繕工程
閘門09→閘門九(大閘)修繕工程
閘門10→閘門十修繕工程
閘門11→閘門十一修繕工程
閘門12→閘門十二修繕工程
閘門13→閘門十三修繕工程
金石廟→金石廟修繕工程
木村坡圍牆→圍牆修繕工程
木村坡鋪張→木村坡鋪裝
木村坡寨牆→寨牆
木村坡牌樓→入口牌坊
木村坡排水→雨水
木村坡污水→污水
木村坡照明→強電
木村坡雨水→雨水
㎡→m2
→m2
→m3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM