返回列表 上一主題 發帖

請教:自動排班EXCEL如何處理

本帖最後由 luhpro 於 2016-3-26 01:22 編輯

回復 1# gaishutsusuru
這可用 Dictionary 函數先建立相關位置索引後會較容易做.

  1. Private Sub cbClr_Click()
  2.   Range([H2], [J11]).Clear
  3. End Sub

  4. Private Sub cbGet_Click()
  5.   Dim iCol%, iNo%
  6.   Dim lRow&
  7.   Dim dDate As Date
  8.   Dim vDd, vDp
  9.   
  10.   Set vDd = CreateObject("Scripting.Dictionary")
  11.   Set vDp = CreateObject("Scripting.Dictionary")
  12.   
  13.   lRow = 2
  14.   While Cells(lRow, 7) <> ""
  15.     vDd(CStr(Cells(lRow, 7))) = lRow
  16.     lRow = lRow + 1
  17.   Wend
  18.   
  19.   iCol = 8
  20.   While Cells(1, iCol) <> ""
  21.     vDp(CStr(Cells(1, iCol))) = iCol
  22.     iCol = iCol + 1
  23.   Wend
  24.   
  25.   lRow = 2
  26.   While Cells(lRow, 2) <> ""
  27.     dDate = Cells(lRow, 2)
  28.     iNo = Cells(lRow, 4)
  29.     While dDate <= Cells(lRow, 3)
  30.       Cells(vDd(CStr(dDate)), vDp(CStr(Cells(lRow, 5)))) = iNo
  31.       iNo = iNo + (iNo = 3) * 3 + 1
  32.       dDate = dDate + 1
  33.     Wend
  34.     lRow = lRow + 1
  35.   Wend
  36. End Sub
複製代碼
能實做.zip (28.82 KB)

TOP

非常謝謝各位的意見想法,真的很有幫助。
ps. 因為個人權限不足(只是小學生),所以不能下載「能實做.zip ( ...
gaishutsusuru 發表於 2016-3-26 22:06


能實做.zip (28.82 KB)

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題