返回列表 上一主題 發帖

程式如何寫比較順暢快速

回復 7# myleoyes
回復 8# GBKEE
Sub 維修()與Sub Ex() 正如 GBKEE 大大之修正後的結果:
  1. Sub 維修()
  2.       Selection = CDate(Application.Ceiling((DateSerial(Year(Date), 1, 1) - 7) / 7, 1) * 7 + 7 * 3)
  3.       Selection.Offset(0, 1) = "=IF(ISNUMBER(MATCH(R1C1,EDATE(RC[-1],{0,6,12})-(WEEKDAY(EDATE(RC[-1],{0,6,12}),2)-6),0)),""維修""&LOOKUP(R1C1,EDATE(RC[-1],{0,6,12})-(WEEKDAY(EDATE(RC[-1],{0,6,12}),2)-6),{1,2,0})&""次"",INDEX(EDATE(RC[-1],{12,6,0})-(WEEKDAY(EDATE(RC[-1],{12,6,0}),2)-6),MATCH(R1C1,EDATE(RC[-1],{12,6,0})-(WEEKDAY(EDATE(RC[-1],{12,6,0}),2)-6),-1)))"
  4. End Sub

  5. Sub Ex()
  6.       Selection = CDate(Application.Ceiling((DateSerial(Year(Date), 1, 1) - 7) / 7, 1) * 7 + 7 * 3)
  7.       Selection.Offset(0, 1) = "=IF(ISNUMBER(MATCH(A1,EDATE(A22,{0,6,12})-(WEEKDAY(EDATE(A22,{0,6,12}),2)-6),0)),""維修""&LOOKUP(A1,EDATE(A22,{0,6,12})-(WEEKDAY(EDATE(A22,{0,6,12}),2)-6),{1,2,0})&""次"",INDEX(EDATE(A22,{12,6,0})-(WEEKDAY(EDATE(A22,{12,6,0}),2)-6),MATCH(A1,EDATE(A22,{12,6,0})-(WEEKDAY(EDATE(A22,{12,6,0}),2)-6),-1)))"
  8. End Sub
複製代碼

GBKEE 大大,到目前為止,我也瞭解了 FormulaR1C1 的應用,謝謝您!

TOP

回復 8# GBKEE
請教您為什麼Sub 維修()與Sub Ex()執行出來的結果值不一樣呢?
左邊完全是Sub Ex()執行出來的結果,右方則是兩者混合交錯執行。

TOP

回復 8# GBKEE
補上檔案共參考:
LeoV67.rar (9.62 KB)

TOP

        靜思自在 : 忘功不忘過,忘怨不忘恩。
返回列表 上一主題