返回列表 上一主題 發帖

想問我的EXCEL比對資料要怎麼寫

想問我的EXCEL比對資料要怎麼寫

有人可以教我檔案中的比對資料整麼寫嗎?

求救大師 看看能不能將我的需求寫出來,工作要用的 但剛接觸EXCEL VBA不太會

比對資料求救比對資料求救.rar (5.69 KB)

神無法侵犯的世界

回復 1# tmde987
兩週的資料會變動的只有數量欄位嗎?

TOP

沒錯 !
主要是要統計公司某些物品的變動量
求救各位高手幫忙一下 ,謝謝!!
神無法侵犯的世界

TOP

回復 3# tmde987


    這各是要做安全庫存嗎?
    感覺又跟安全庫存不一樣
   因為你是針對消耗的部分去購買
   而不是補足安全庫存量

   感覺你的問題應該是很簡單
   可是你要將步驟切很細
   很難明白你要的
   
   有點把簡單問題複雜化
   如果是計算安全庫存可能就有考量上的差異
   但是依你的方式應該是有更簡單的處理方法
字典兩各字 還真難理解

TOP

或許吧 ! 但每種不同的方法是老闆給我的建議  
所以我把它列出來  每個問分開來 畢竟新手不會
短時間要摸有點難 ~~
神無法侵犯的世界

TOP

本帖最後由 Hsieh 於 2013-1-8 00:09 編輯

回復 5# tmde987
  1. Sub 按鈕_1()
  2. Dim Ar()
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheet1
  5.   For Each a In .Range(.[A2], .[A2].End(xlDown))
  6.      d(a.Value) = a.Offset(, 4).Value
  7.   Next
  8.   For Each a In .Range(.[J2], .[J2].End(xlDown))
  9.      i = a.Offset(, 4).Value - d(a.Value)
  10.      If i <> 0 Then
  11.      ReDim Preserve Ar(s)
  12.      Ar(s) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 2).Value, a.Offset(, 3).Value, i, a.Offset(, 5).Value)
  13.      s = s + 1
  14.      End If
  15.   Next
  16. End With
  17. Sheet2.UsedRange.Offset(1) = "" '第2列以下刪除
  18. Sheet2.[A2].Resize(s, 6) = Application.Transpose(Application.Transpose(Ar)) 'A2以下填入
  19. End Sub
複製代碼
  1. Sub 按鈕_2()
  2. Dim Ar()
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheet1
  5.   For Each a In .Range(.[A2], .[A2].End(xlDown))
  6.      d(a.Value) = a.Offset(, 4).Value
  7.   Next
  8.   For Each a In .Range(.[J2], .[J2].End(xlDown))
  9.      i = a.Offset(, 4).Value - d(a.Value)
  10.      If i <> 0 Then
  11.      ReDim Preserve Ar(s)
  12.      Ar(s) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 3).Value, i)
  13.      s = s + 1
  14.      End If
  15.   Next
  16. End With
  17. Sheet3.UsedRange.Offset(1) = "" '第2列以下刪除
  18. Sheet3.[A2].Resize(s, 4) = Application.Transpose(Application.Transpose(Ar)) 'A2以下填入
  19. End Sub
複製代碼
  1. Sub 按鈕_3()
  2. Dim Ar()
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheet1
  5.   For Each a In .Range(.[A2], .[A2].End(xlDown))
  6.      d(a.Value) = a.Offset(, 4).Value
  7.   Next
  8.   For Each a In .Range(.[J2], .[J2].End(xlDown))
  9.      i = a.Offset(, 4).Value - d(a.Value)
  10.      If i <> 0 Then
  11.      ReDim Preserve Ar(s)
  12.      Ar(s) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 3).Value, i)
  13.      s = s + 1
  14.      End If
  15.   Next
  16. End With
  17. Sheet4.UsedRange.Offset(2) = "" '第3列以下刪除
  18. Sheet4.[A3].Resize(s, 4) = Application.Transpose(Application.Transpose(Ar)) 'A3以下填入
  19. End Sub
複製代碼
  1. Sub 按鈕_4()
  2. Dim Ar()
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheet1
  5.   For Each a In .Range(.[A2], .[A2].End(xlDown))
  6.      d(a.Value) = a.Offset(, 4).Value
  7.   Next
  8.   For Each a In .Range(.[J2], .[J2].End(xlDown))
  9.      i = a.Offset(, 4).Value - d(a.Value)
  10.      If i <> 0 Then
  11.      ReDim Preserve Ar(s)
  12.      Ar(s) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 2).Value, a.Offset(, 3).Value, i, "=RC[-2]*RC[-1]")
  13.      s = s + 1
  14.      End If
  15.   Next
  16. End With
  17. Sheet5.UsedRange.Offset(2) = "" '第3列以下刪除
  18. Sheet5.[A3].Resize(s, 6) = Application.Transpose(Application.Transpose(Ar)) 'A3以下填入
  19. End Sub
複製代碼
  1. Sub 按鈕_5()
  2. Dim Ar()
  3. With Sheet6
  4.   For Each a In .Range(.[A2], .[A2].End(xlDown))
  5.      i = Application.Max(0, a.Offset(, 5).Value - a.Offset(, 4).Value) '計算購買數量
  6.      ReDim Preserve Ar(s)
  7.      Ar(s) = Array(a.Value, a.Offset(, 1).Value, a.Offset(, 2).Value, a.Offset(, 3).Value, i)
  8.      s = s + 1
  9.   Next
  10. End With
  11. Sheet6.UsedRange.Offset(2, 8) = "" 'I3以下刪除
  12. Sheet6.[I3].Resize(s, 5) = Application.Transpose(Application.Transpose(Ar)) 'I3以下填入
  13. End Sub
複製代碼
學海無涯_不恥下問

TOP

感謝Hsieh 大大的解答

按鈕5 這段 執行會錯誤

For Each a In .Range(.[A2], .[A2].End(xlDown))

我還看不出來錯誤的指令在哪  研究指令中 蠻深澳的!!
神無法侵犯的世界

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題