返回列表 上一主題 發帖

[發問] 請問VBA可以做到兩檔案比對後再產生另一檔案的比對結果嗎?

[發問] 請問VBA可以做到兩檔案比對後再產生另一檔案的比對結果嗎?

請問一下大師們~

目前手邊有一近五萬筆的資料庫--A資料 我們需要將手邊的B資料與之做比對

請問VBA有沒有辦法做出一個檔案 開啟後直接載入EXCEL的A檔案 與B檔案 比對後產生C檔案呢?
C檔案以B檔案格式為主 向後多加欄位"K"
K欄位內容是A檔案的A欄位

比對內容是

A檔案的E欄位 與 B檔案的J欄位比較(可忽略"-")

A檔案的格式如下
A                 B           C                       D                         E
100-1       XXX      XXX                 XXX                   DOG
100-2       XXX      XXX                 XXX                   CAT
100-3       XXX      XXX                 XXX                   CAT-1
100-4       XXX      XXX                 XXX                   CAT-2

B檔案的格式如下
A                 B           C                       D                         E                      F                       G             H                I           J
11            XX          XX                      XX                       XX                 XX                        XX         XX            CC       DOG
12            XX          XX                      XX                       XX                 XX                        XX         XX            CC       CAT
13            XX          XX                      XX                       XX                 XX                        XX         XX            CC       CAT1
14            XX          XX                      XX                       XX                 XX                        XX         XX            CC       CAT-1
15            XX          XX                      XX                       XX                 XX                        XX         XX            CC       CAT3

比對結果希望產生C檔案
A                 B           C                       D                         E                      F                       G             H                I           J                K
11            XX          XX                      XX                       XX                 XX                        XX         XX            CC       DOG       100-1
12            XX          XX                      XX                       XX                 XX                        XX         XX            CC       CAT          100-2
13            XX          XX                      XX                       XX                 XX                        XX         XX            CC       CAT1        100-3
14            XX          XX                      XX                       XX                 XX                        XX         XX            CC       CAT-1       100-3
15            XX          XX                      XX                       XX                 XX                        XX         XX            CC       CAT3          No Data

忘了附檔.....稍後附上檔案~

TOP

回復 2# happycoccolin


    :$ 若有空請大家看看是否可以達成~~~謝謝!!!!!

ABC.zip (19.03 KB)

TOP

回復 4# vocolboy


    哈囉~~謝謝vocolboy ~

請問一下 是否可以有一個檔案 開啟以後 讓我按鈕選擇載入兩個檔案比對呢?

例如

按鈕一  請選擇檔案
按鈕二  請選擇檔案
按鈕三  開始比對

TOP

回復 6# GBKEE


    謝謝版大~~~

抱歉小妹才疏學淺...... 請問一下要怎麼使用才能做比對呢?

我將語法複製到模組中 但是如何才能正確使用?

目前偵錯停在
With Workbooks("A.xls").Sheets(1)

對VBA很有興趣但是未開竅 目前腳步很慢尚停留在函數階段 也請各位大師們多多見諒我問的笨問題..

TOP

回復 8# GBKEE


謝謝板大~

可以再請問一下嗎~如何不指定檔名~要做到人人都可以利用此檔案來做比對

那可以怎麼處理呢?

我現在是以A.xlsx為主,sheet1我加一個按鈕直接RUN此比對

如何載入欲比對的檔案呢?

TOP

回復 10# GBKEE


    謝謝板大!!!!!!

但是偵錯目前停在
    With Workbooks("C.xlsx").Sheets(1)

是不是若我不指定新檔案的檔名就不會有錯誤呢?

應該是說比對完成後跑出的檔案由使用者自定義名稱

抱歉問題很多

我附上檔案給您參考
ABC.xlsm為資料庫
B.xlsx為欲比對檔案
希望比對後產生一新檔案(由使用者自定義名稱另存新檔)
ABC (2).zip (22.42 KB)

很高興板大願意解惑~^^

TOP

回復 12# GBKEE


    感謝板大的迅速回覆~~~

請問一下目前偵錯停在
Sub Ex()

我現在要怎麼處理呢?

謝謝板大的幫忙!!!!!!!

TOP

回復 14# GBKEE


    版大~~只有一個Ex~~~我有附檔~~>< 拜託幫忙撥空看一下好嗎~
感激不盡!!!

ABC (3).zip (40.64 KB)

TOP

回復 16# GBKEE


    謝謝版大的幫忙~~~~

再請教一下~目前偵錯停在
With Workbooks("A.xlsx").Sheets(1)   '

因為我已經將資料庫放在ABC.xlsm裡面了

那下面這段語法是否就不用針對A.xlsx做處理呢?

i = 1
    With Workbooks("A.xlsx").Sheets(1)   '
        Do While .Cells(i, "e") <> ""
            d(.Cells(i, "e").Value) = .Cells(i, "A").Value
            i = i + 1
        Loop

TOP

        靜思自在 : 地上種了菜,就不易長草;心中有善,就不易生惡。
返回列表 上一主題