作者ljuber (美少婦與女兒同學的故事)
看板Office
標題[算表] vba迴圈取代呼叫表格問題?
時間Wed Aug 21 14:01:21 2019
軟體:excel
版本:任何版本
If (MsgBox("是否執行取代?", vbYesNo) = vbNo) Then Exit Sub
Application.ScreenUpdating = False '巨集執行時不更新螢幕
Dim openfile$, filepath$, thiswrkname$
Dim FileChosen As Integer
Dim ff As String
Dim MM
Dim diaFolder As FileDialog
thiswrkname = ThisWorkbook.Name
'開啟資料夾
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
fd.AllowMultiSelect = False
FileChosen = fd.Show
'沒有選資料夾離開程式
If FileChosen <> -1 Then
MsgBox "你沒有選擇資料夾"
Exit Sub
Else
filepath = fd.SelectedItems(1) & "\"
End If
openfile = Dir(filepath & "*.xls*")
Application.DisplayAlerts = False
'資料夾沒檔案離開程式
If openfile = "" Then
MsgBox "資料夾內沒有要處理檔案,請確認"
Exit Sub
End If
====
主要是下面這段:
'----
Do While openfile <> ""
Workbooks.Open filepath & openfile
Workbooks(thiswrkname).Activate
Sheets("機構代號").Select
For i = 1 To 63
XX = Range("A" & i)
YY = Range("B" & i)
Workbooks(openfile).Activate
For j = 1 To 100
If Range("B" & j) = XX Then Range("C" & j) = YY
Next j
Next i
Workbooks(openfile).Save
Workbooks(openfile).Close
openfile = Dir
Workbooks(thiswrkname).Activate
Sheets("機構代號").Select
Loop
MsgBox "已經將機構名稱改正確"
End Sub
====
大概就是有個表格 金融機構代號 要回傳到另外很多檔案去
我上面那樣寫都只有第一個會改到
不知道我那邊邏輯想錯...
檔案跟範例檔案在這邊
https://drive.google.com/open?id=1Sm6oBuiakIprjdwnO-0sEFIdWad8OKiv
--
http://www.youtube.com/watch?v=jx-dxHXwFAM
http://www.youtube.com/watch?v=-ZGQxRIn-7o
http://a.imageshack.us/img195/2903/img5738m.jpg
豆起相思,其生南國,
花開堪折,莫待落蒂,
妹上心頭,如獲至寶。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.67.78 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1566367284.A.A79.html
→ soyoso: 因為變數XX和YY在每個迴圈於檔名時才又activate有機構代號 08/21 14:15
→ soyoso: 工作表的這個活頁簿,因此會導致於i迴圈於2起的變數XX和YY 08/21 14:16
→ soyoso: 會是所開啟活頁簿裡的資料,如XX取的是a欄來看,就會是空 08/21 14:16
→ soyoso: 白儲存格,判斷上也就沒有符合的 08/21 14:17
→ soyoso: XX=workbooks(thiswrkname).activesheet.range("a" & i) 08/21 14:18
→ soyoso: 的方式來取得資料,YY亦同 08/21 14:19
→ ljuber: 謝謝S大!!解決了 08/21 16:27