看板 Office 關於我們 聯絡資訊
軟體: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