返回列表 上一主題 發帖

[發問] 兩個excel以上,查詢方法

[發問] 兩個excel以上,查詢方法

請問我有兩個excel(甲和乙)

甲是用來當資料庫使用
裡面的a欄事項次。ex1-99

乙是用來查詢的
點選項次1可查詢到甲excel內的a2-f2的資料

目前小弟的程式碼是將甲excel打開,用迴圈的方式搜尋
但當資料越來越多的時候,這樣有點慢....
還有查詢的excel增加到丙、丁、戊.....等,這樣會衝突



請問有人知道比較好的方法嗎??

回復 7# Hsieh


    版大:
試過了,真的好用,但是如果是10位元只取其中5位元近似資料的話,那要怎麼做.....用星號無法替代.....謝謝了.

TOP

上文 也可改寫成多筆資料比對,甚至可不用特定欄位對照..

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

本帖最後由 mark15jill 於 2012-10-19 17:11 編輯

回復 10# swtseng

比較簡略的方法..
簡單判斷

    Windows("乙.xlsm").Activate
    daa = [d2]

    ChDir "C:\Users\user\Desktop\swtseng"
    Workbooks.Open Filename:="C:\Users\user\Desktop\swtseng\甲.xlsx"
        For paa = 1 To ActiveSheet.Range("a2").CurrentRegion.Rows.Count
            If Cells(paa, 1) = daa Then
                spad = Cells(paa, 1)
                spbd = Cells(paa, 2)
                spcd = Cells(paa, 3)
                spdd = Cells(paa, 4)
                sped = Cells(paa, 5)
                spfd = Cells(paa, 6)

                Windows("乙.xlsm").Activate
                [e2] = spbd
                [f2] = spcd
                [g2] = spdd
                [h2] = sped
                [i2] = spfd
               
               
                Windows("甲.xlsx").Activate
            End If
        Next
    ActiveWorkbook.Save
    ActiveWindow.Close

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

可以了,原本已連線的資料不可以刪除
加路徑和檔名的變數後就可以使用了

另外,這種方法,檔案就1mb以上......
不知道各位高手們,有沒有其他的方法??

TOP

請問Hsieh版主,可以用程式碼來呈現嗎??
我用錄製的方式,出現"陣列索引超出範圍",無法執行..

TOP

受教了,我在試試看可不可以用錄的方式,以程式碼來呈現

因為路徑會做更改.......

TOP

回復 6# swtseng

參數資料庫查詢

    play.gif
學海無涯_不恥下問

TOP

回復 5# GBKEE


    附件裡有兩個方法
    方法一的程式碼隨手key,所以變數沒宣告


實際在使用的情況類似,但檔案量越來越大
有時候又有連結時間上的問題,看能不能不需要開檔案,用程式碼連線讀取

swtseng.rar (29.65 KB)

TOP

回復 1# swtseng
目前小弟的程式碼是將甲excel打開,用迴圈的方式搜尋
你2#的附檔是沒有VBA的檔案

TOP

        靜思自在 : 成功是優點的發揮,失敗是缺點的累積。
返回列表 上一主題