我想設置一些代碼來自動化我必須在我運行的每週報告上執行的任務。其任務是進入所有'數據'表並做幾次查找和替換,以便引用數據表的報表的其他部分看起來更清晰一些。編輯子使用字符串數組結合使用每個
目前我的代碼看起來與此類似:
sub FindReplaceSheets()
dim nameofsheet as string
nameofsheet = "ABC Data"
call FindReplace (nameofsheet)
nameofsheet = "DEF Data"
call FindReplace (nameofsheet)
End Sub
sub FindReplace (x)
Sheets.(x).select
Cells.Replace What:="qwerty", Replacement:="asdfgh"
Cells.Replace What:="zxcvb", Replacement:="mnbvc"
Cells.Replace What:="poiuy", Replacement:="lkjhg"
End Sub
雖然這工作得很好,我相信它可以更巧妙地完成。除上面列出的以外,還有更多的工作表和更多的查找/替換,但並不是代碼的速度至關重要,我只想讓它看起來更整潔,更易於編輯。
我曾試圖以兩種方式來編輯這樣的:有,首先要通過做對於每個語句的紙張選擇,但我不能把它與一些工作像
For each ws
If right(ws.name, 4) = "Data"
其次,我嘗試過編輯該查找使用一個數組,我定義每個查找和替換字符串,但似乎無法得到正確的語法。
我認爲一個字符串數組和一個for each循環將適合我想要在這裏實現的,但如果更合適的話,請告訴其他方法。
在此先感謝您的幫助。
非常感謝您的建議。我試圖將你的代碼應用到我的報告中,並且查找和替換部分工作正常,謝謝。不幸的是,它不是在工作表上所要求的,但是當我運行宏時(即使該工作表的名稱中沒有「數據」)並且不會循環到其他工作表中,它將在我所在的表上進行查找和替換。最令人討厭的是,它沒有錯誤,所以我很難看出什麼是錯的。也許它完成了一個循環,但由於某種原因沒有進入下一個循環?有關如何確定發生了什麼問題的任何建議?再次感謝! – SMLBW
哦,我實際上已經做了一些改變。它不喜歡string(),並且錯誤地表示它期望聲明的結尾如此定義'oldtxt'和'newtxt'作爲變體 - 可能是問題出在哪裏。 – SMLBW
感謝您的反饋意見 - 我的意圖是向您提供一個只需要很少更改的解決方案,但我沒有訪問Excel(新的Windows安裝)。我會檢查(和測試)代碼,並且很快會給您回覆 –