作者ahow0917 (小白)
看板Office
標題[算表] 多資料欄位跨檔案條件判斷
時間Sat Sep 10 02:16:56 2016
軟體: 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://webptt.com/m.aspx?n=bbs/Office/M.1473445019.A.34F.html
1F:→ soyoso: 問題1,原cells(r,e),前加上thisworkbook.activesheet 試 09/10 07:15
2F:→ soyoso: 試 09/10 07:15
3F:→ ahow0917: s大~加上去就可以了,可是如果有是空格他還是會判定是 09/10 16:33
4F:→ ahow0917: 成功,我有加上lookin:=xlvalues lookin:=xlwhole還是一 09/10 16:35
5F:→ ahow0917: 樣,空格的問題有可以解嗎??謝謝 09/10 16:36
6F:→ soyoso: 有空格是指,如"a "去找"a"的話是可以找到嗎? 09/10 16:44
7F:→ ahow0917: 空格的意思是搜尋欄位是沒資料的假如後面有10筆的欄位是 09/10 16:58
8F:→ ahow0917: 沒有打入資料的他也會判定成功 09/10 16:59
9F:→ soyoso: 那加上個判斷尋找目標如沒資料則不執行range.find的部分 09/10 17:07
10F:→ ahow0917: 請問有相關範本可以參考嗎?? 09/10 17:28
11F:→ ahow0917: 是要if等於 "" 然後就直接跳出嗎這樣嗎?? 09/10 17:31
12F:→ soyoso: 如原po回文,為""時則不執行range.find,再執行其他部分 09/10 17:38
13F:→ ahow0917: 我先寫看看~~先感謝神S的指導~~ 09/10 19:11
14F:推 waiter337: 你先做個測試 先別用vba 09/10 23:54
15F:→ waiter337: 先手動 確定 兩筆資料是否相同 有可能都一樣的文字 缺 09/10 23:55
16F:→ waiter337: 不同的資料 09/10 23:55
17F:→ waiter337: 卻是不同的資料 09/10 23:55
18F:→ waiter337: 我會建議你把檔案傳上來 09/10 23:57
19F:推 waiter337: 問題一 一定可以指定 甚至可以套入迴圈 甚至自己抓檔名 09/10 23:58
20F:→ waiter337: 連指定檔案都不用 09/10 23:58
21F:→ waiter337: 問題二 其實要看資料的概況 09/10 23:59
22F:推 waiter337: 甚至只要有一個表 多個月份欄位,基本上12張合成一張 09/11 00:02
23F:→ waiter337: 都無所謂,除非你一個月分的資料破2萬筆 09/11 00:02
24F:推 waiter337: 但反過來說 甚至你可以用年當資料分類 09/11 00:04
25F:推 waiter337: 其實是我會比較用土一點但比較不會錯的方式 09/11 00:06
26F:→ waiter337: 用vba把檔案二的資料貼到檔案ㄧ的某個頁面,在做分析 09/11 00:07
27F:推 waiter337: 同時開啟12個檔案當然會很慢,我會建議,你把 09/11 00:12
28F:→ waiter337: ActiveWorkbook.Close savechanges:=False 09/11 00:12
29F:→ waiter337: Application.ScreenUpdating = True 09/11 00:13
30F:→ waiter337: End Sub 09/11 00:13
31F:→ waiter337: End sub 不用 09/11 00:13
32F:→ waiter337: 這幾行 放入迴圈中 每次處理完就關掉就好啦 09/11 00:13
33F:→ ahow0917: 問題在於我連第一個都解不出來了QQ 09/11 03:40
34F:→ ahow0917: 問題2不合併的原因在於他是在做出貨的查詢,只要有出貨 09/11 03:44
35F:→ ahow0917: 他要查到是否有打入,所以我才會用find去做而已 09/11 03:46
36F:推 waiter337: 你把檔案po上來直接讓我們改比較快 畢竟問題 不是單一 09/11 04:07
37F:→ waiter337: 函數 09/11 04:07
http://goo.gl/20mCMX -----test.xlsm
http://goo.gl/pbjvU5 -----dete.xls
附上相關檔案~~
※ 編輯: ahow0917 (114.41.83.250), 09/11/2016 16:32:23
38F:推 waiter337: 我要星期二才會看 09/11 16:34
39F:→ ahow0917: 應該星期2我也還沒解出來~~QQ 09/11 16:47
41F:→ ahow0917: 對~~感謝神S的神支援,小弟在此叩謝!!! 09/11 23:41