返回列表 上一主題 發帖

[發問] 比較資料-利用VBA程式比較兩個資料檔案並做計算

回復 2# Hsieh

感恩大大的回應!
(3/2)後來提問的問題是:
A.xls
項次  規格  單位  單價  數量
   1     AA1   pcs    10    300
   2     AB2   pcs     20   35
   3     AC1   pcs     18   0
   4     AD2   pcs     10   52
   5     AE3    pcs     15   200
B.xls
項次  規格  單位  數量
   1     A1     pcs    300
   2     B2     pcs     40
   3     E3     pcs     150
1.首先先將A、B兩個檔案分別放在同一個檔案、不同的工作表
    A、B兩個檔案的[規格]是相同的,
   只是當初在建A檔案時在每一個規格的第一碼加了一碼"A",
   其餘後方的都相同。
2.再將比較結果放在第三個工作表,顯示如下:
   (希望在第三個工作表也能將A、B兩檔案顯示出來)
規格  數量    規格  數量     規格  差異數(B.xla-A.xls)
A1     300     A1     300      A1       0
B2     35        B2     40         B2       5  
C1     0          E3      150      C1       0  
D2    52                                 D2       -52
E3     200                               E3       -50

TOP

大大請問一下:
1.您所說的一般模組是在Module下嗎?
2.放在模組下,不用建按鈕觸發嗎?
不好意思!
因 ...
amychlo 發表於 2013-2-23 19:35


1. 對
2.不建按鈕的話,
在module上點上任何一行, 按keyboard "F5"鍵 可
或在excel頁面 "開發人員"菜單->巨集->選上sub ->執行
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

大大請問一下:
1.您所說的一般模組是在Module下嗎?
2.放在模組下,不用建按鈕觸發嗎?
不好意思!
因為剛接觸vba所以一切還在摸索中,
請您多多指教囉!
感恩

TOP

回復 1# amychlo

將程式碼放在彙整的活頁簿一般模組
  1. Sub 彙整()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. fd = ThisWorkbook.Path & "\" '3個檔案放在同目錄中
  4. 'fd="D:\"  '指定A、B2檔案的存放目錄
  5. fs = Array("A.xls", "B.xls")
  6. d("規格") = "數量"
  7. For Each f In fs
  8.    With Workbooks.Open(fd & f)
  9.       With .Sheets(1)
  10.       i = i + 1
  11.       .UsedRange.Copy ThisWorkbook.Sheets(i).[A1]
  12.       With ThisWorkbook.Sheets(i)
  13.           For Each a In .Range(.[A2], .[A2].End(xlDown))
  14.              If IsEmpty(d(a.Value)) Then d(a.Value) = a.Offset(, 1) Else d(a.Value) = a.Offset(, 1) - d(a.Value)
  15.           Next
  16.       End With
  17.       End With
  18.       .Close
  19.     End With
  20. Next
  21. With Sheets(3)
  22.    .[A1].Resize(d.Count, 1) = Application.Transpose(d.keys)
  23.    .[B1].Resize(d.Count, 1) = Application.Transpose(d.items)
  24. End With
  25. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 知識要用心體會,才能變成自己的智慧。
返回列表 上一主題