作者newacc (XD)
看板Office
標題Re: [算表] VBA ㄧ次修改多個開啟檔案內容
時間Fri Apr 28 16:09:24 2023
往可能的方向調整,沒有經過測試
2個假設:
1.每個活頁簿需要調整的工作表不只1個
2.每個工作表需要調整的格子不只1個
Dim wb as workbook
Dim ABC as range
Dim firstAddr as String
'依序在已開啟的活頁簿裡執行
For Each wb in Application.Workbooks
'依序在wb裡的每一工作表裡執行
For Each ws in wb
'先試圖找第一筆資料
Set ABC = ws.Cells.Find(
What:="HHH", _
LookIn:=xlFormulas2, _
LookAt:=xlPart, _
SearchOrder: =xlByRows, _
SearchDirection: xlNext, _
MatchCase: =False, _
SearchFormat: =False
)
'確認有找到資料
If Not ABC Is Nothing Then
'紀錄第一筆的位址
firstAddr = ABC.Address
'重複操作直到重新找到第一筆資料
Do
ABC.Offset(, 1).FormulaR1C1 = "000"
Set ABC = ws.Cells.FindNext(ABC)
Loop While ABC.Address <> firstAddr
End If
Next ws
Next wb
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.174.17.157 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1682669366.A.F14.html
1F:→ newacc: 補充一下,如果可以的話限定搜尋的範圍會比較好 04/28 16:10
2F:→ newacc: 在每一個活頁簿的每一個工作表裡的每個格子搜尋很耗資源 04/28 16:10
3F:→ newacc: 但因為不知道你的原始資料格式,沒辦法幫你限縮 04/28 16:11