[算表] 多資料欄位跨檔案條件判斷

看板Office作者 (小白)時間7年前 (2016/09/10 02:16), 7年前編輯推噓8(8033)
留言41則, 3人參與, 最新討論串1/1
軟體: EXCEL 版本: 2010 檔案1 test.xlsm 檔案2 date.xls 以檔案1的欄位以搜尋的的方法來找尋是否有出現在檔案2 附上程式碼 Sub FindAddress() Dim s As Integer Dim r As Integer Dim GCell, txt As Range Dim MySheet As String '路徑 MyPath = "d:\test\" '檔案名稱 MyWB = "date.xls" MySheet = ActiveSheet.Name '關顯示開唯讀 Application.ScreenUpdating = False Workbooks.Open Filename:=MyPath & MyWB, ReadOnly:=True e = 5 For r = 17 To 36 i = r Set txt = Cells(r, e) Set GCell = ActiveSheet.Cells.Find(What:=txt) If Not GCell Is Nothing Then With ThisWorkbook.ActiveSheet.Range("f" & (i)) .Value = "ok" End With Else With ThisWorkbook.ActiveSheet.Range("f" & (i)) .Value = "no" End With End If Next r '開顯示不存檔 ActiveWorkbook.Close savechanges:=False Application.ScreenUpdating = True End Sub 問題1:無法指定檔案1的欄位來做搜尋,他都會跳到檔案2欄位做為搜尋的條件 請問是我哪裡寫錯了嗎?? 問題2:因為檔案2會以月份做為工作表,所以之後會輸入的工作表至少會有12頁, 這樣開檔搜尋之後又關檔效率會好嗎? 請各位多多指教~~~謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.230.134.117 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1473445019.A.34F.html

09/10 07:15, , 1F
問題1,原cells(r,e),前加上thisworkbook.activesheet 試
09/10 07:15, 1F

09/10 07:15, , 2F
09/10 07:15, 2F

09/10 16:33, , 3F
s大~加上去就可以了,可是如果有是空格他還是會判定是
09/10 16:33, 3F

09/10 16:35, , 4F
成功,我有加上lookin:=xlvalues lookin:=xlwhole還是一
09/10 16:35, 4F

09/10 16:36, , 5F
樣,空格的問題有可以解嗎??謝謝
09/10 16:36, 5F

09/10 16:44, , 6F
有空格是指,如"a "去找"a"的話是可以找到嗎?
09/10 16:44, 6F

09/10 16:58, , 7F
空格的意思是搜尋欄位是沒資料的假如後面有10筆的欄位是
09/10 16:58, 7F

09/10 16:59, , 8F
沒有打入資料的他也會判定成功
09/10 16:59, 8F

09/10 17:07, , 9F
那加上個判斷尋找目標如沒資料則不執行range.find的部分
09/10 17:07, 9F

09/10 17:28, , 10F
請問有相關範本可以參考嗎??
09/10 17:28, 10F

09/10 17:31, , 11F
是要if等於 "" 然後就直接跳出嗎這樣嗎??
09/10 17:31, 11F

09/10 17:38, , 12F
如原po回文,為""時則不執行range.find,再執行其他部分
09/10 17:38, 12F

09/10 19:11, , 13F
我先寫看看~~先感謝神S的指導~~
09/10 19:11, 13F

09/10 23:54, , 14F
你先做個測試 先別用vba
09/10 23:54, 14F

09/10 23:55, , 15F
先手動 確定 兩筆資料是否相同 有可能都一樣的文字 缺
09/10 23:55, 15F

09/10 23:55, , 16F
不同的資料
09/10 23:55, 16F

09/10 23:55, , 17F
卻是不同的資料
09/10 23:55, 17F

09/10 23:57, , 18F
我會建議你把檔案傳上來
09/10 23:57, 18F

09/10 23:58, , 19F
問題一 一定可以指定 甚至可以套入迴圈 甚至自己抓檔名
09/10 23:58, 19F

09/10 23:58, , 20F
連指定檔案都不用
09/10 23:58, 20F

09/10 23:59, , 21F
問題二 其實要看資料的概況
09/10 23:59, 21F

09/11 00:02, , 22F
甚至只要有一個表 多個月份欄位,基本上12張合成一張
09/11 00:02, 22F

09/11 00:02, , 23F
都無所謂,除非你一個月分的資料破2萬筆
09/11 00:02, 23F

09/11 00:04, , 24F
但反過來說 甚至你可以用年當資料分類
09/11 00:04, 24F

09/11 00:06, , 25F
其實是我會比較用土一點但比較不會錯的方式
09/11 00:06, 25F

09/11 00:07, , 26F
用vba把檔案二的資料貼到檔案ㄧ的某個頁面,在做分析
09/11 00:07, 26F

09/11 00:12, , 27F
同時開啟12個檔案當然會很慢,我會建議,你把
09/11 00:12, 27F

09/11 00:12, , 28F
ActiveWorkbook.Close savechanges:=False
09/11 00:12, 28F

09/11 00:13, , 29F
Application.ScreenUpdating = True
09/11 00:13, 29F

09/11 00:13, , 30F
End Sub
09/11 00:13, 30F

09/11 00:13, , 31F
End sub 不用
09/11 00:13, 31F

09/11 00:13, , 32F
這幾行 放入迴圈中 每次處理完就關掉就好啦
09/11 00:13, 32F

09/11 03:40, , 33F
問題在於我連第一個都解不出來了QQ
09/11 03:40, 33F

09/11 03:44, , 34F
問題2不合併的原因在於他是在做出貨的查詢,只要有出貨
09/11 03:44, 34F

09/11 03:46, , 35F
他要查到是否有打入,所以我才會用find去做而已
09/11 03:46, 35F

09/11 04:07, , 36F
你把檔案po上來直接讓我們改比較快 畢竟問題 不是單一
09/11 04:07, 36F

09/11 04:07, , 37F
函數
09/11 04:07, 37F
http://goo.gl/20mCMX -----test.xlsm http://goo.gl/pbjvU5 -----dete.xls 附上相關檔案~~ ※ 編輯: ahow0917 (114.41.83.250), 09/11/2016 16:32:23

09/11 16:34, , 38F
我要星期二才會看
09/11 16:34, 38F

09/11 16:47, , 39F
應該星期2我也還沒解出來~~QQ
09/11 16:47, 39F

09/11 18:22, , 40F
http://imgur.com/a/X1Zx8 要產生這樣的結果嗎?
09/11 18:22, 40F

09/11 23:41, , 41F
對~~感謝神S的神支援,小弟在此叩謝!!!
09/11 23:41, 41F
文章代碼(AID): #1NqloRDF (Office)