返回列表 上一主題 發帖

[發問] 如何用INPUTBOX輸入收單日期,跑出每個處方日期的數量加總,並以MSGBOX顯示

本帖最後由 luhpro 於 2011-5-26 23:28 編輯

回復 9# akimunekyo
跑出來的數量會空白我猜是輸入的日期文字不 Match 所以抓不到資料,
附檔 收單日期-a.zip (9.65 KB) 開啟後按下 "查詢資料" 按鈕輸入日期 100/5/23 就會看到結果了.

如果想要知道一個指令的功能可以在VBA編輯器中Mark該指令後再按下 F1 按鍵就會看到線上說明了.
trim 是去掉字串前後方的空白字元
Cstr 是強制將資料改成字串格式
Dim中變數名稱右邊加 : $ 等同 As String   % 等同 As Integer
Dim sStr$   即等同 Dim sStr As String

至於程式代碼加編號我猜應該是高級模式中按上方的 "代碼" 貼上程式進去後做出來的.

TOP

回復 11# luhpro
附檔
For iI = 2 To iRow
    oD(CStr(Cells(iI, 1))) = oD(CStr(Cells(iI, 1))) + Val(Cells(iI, 3))
  Next iI
這段程式碼是每一處方日期的數量加總 (每一處方日期 可能有不同的收單日期要考慮到 )

TOP

回復 11# luhpro


感謝 luhpro 前輩解惑,小弟還不能下載檔案,不過我會再試看看的
目前Hsieh前輩的程式已經可以使用
  1. 01.Sub ex()
  2. 02.Set d = CreateObject("Scripting.Dictionary")
  3. 03.Set d1 = CreateObject("Scripting.Dictionary")
  4. 04.
  5. 05.myday = CDate(InputBox("輸入日期", , Date))
  6. 06.For Each a In Range([D2], [D65536].End(xlUp))
  7. 07.  If a = myday Then d(a.Offset(, -3) & "") = d(a.Offset(, -3) & "") + a.Offset(, -1)
  8. 08.Next
  9. 09.For Each ky In d.keys
  10. 10.   d1(ky & ":" & d(ky)) = ""
  11. 11.Next
  12. 12.MsgBox Join(d1.keys, Chr(10))
  13. 13.End Sub
複製代碼
```@```NO BEST``@```
``@``JUST BETTER``@``
```@`AND BETTER`@```

TOP

        靜思自在 : 話多不如話少,話少不如話好。
返回列表 上一主題