返回列表 上一主題 發帖

副程式/if判斷不到/請求解惑

回復 9# c_c_lai

If StrComp(Cells(a, 1), x, 1) >= 0 And StrComp(y, Cells(a, 1), 1) >= 0
我剛查了一下StrComp函式用來比較字串,且若第一個參數小於、等於或大於第二個參數時,依序回傳-1、0或1
StrComp(Cells(a, 1), x, 1) >= 0 這是怎麼判斷的 請教一下.
Cells(a, 1)和 x比後就有點模糊了..
你好喔

TOP

本帖最後由 c_c_lai 於 2013-10-22 06:05 編輯

回復 11# 最高機密
看了以下分析便不會混亂了:
  1. 假設 x,y  你的輸入值分別為 20040116,20040206

  2. x                          = "20040116"  (輸入值)
  3. y                          = "20040206"  (輸入值)
  4.                   [A2]
  5. Cells(a, 1)                = 20040109
  6. StrComp(Cells(a, 1), x, 1) = -1        '  [A2] < x
  7. StrComp(y, Cells(a, 1), 1) = 1         '  y > [A2]
  8.                   [A3]     (條件符合 - 成立)
  9. Cells(a, 1)                = 20040116
  10. StrComp(Cells(a, 1), x, 1) = 0         '  [A3] = x
  11. StrComp(y, Cells(a, 1), 1) = 1         '  y > [A3]
  12.                   [A4]     (條件符合 - 成立)
  13. Cells(a, 1)                = 20040130
  14. StrComp(Cells(a, 1), x, 1) = 1         '  [A4] > x
  15. StrComp(y, Cells(a, 1), 1) = 1         '  y > [A4]
  16.                   [A5]     (條件符合 - 成立)
  17. Cells(a, 1)                = 20040206
  18. StrComp(Cells(a, 1), x, 1) = 1         '  [A5] > x
  19. StrComp(y, Cells(a, 1), 1) = 0         '  y = [A5]
  20.                   [A6]
  21. Cells(a, 1)                = 20040213
  22. StrComp(Cells(a, 1), x, 1) = 1         '  [A6] > x
  23. StrComp(y, Cells(a, 1), 1) = -1        '  y < [A6]
  24.                   [A7]
  25. Cells(a, 1)                = 20040220
  26. StrComp(Cells(a, 1), x, 1) = 1         '  [A7] > x
  27. StrComp(y, Cells(a, 1), 1) = -1        '  y < [A7]
複製代碼
撥雲見日了嗎?

TOP

回復 12# c_c_lai


    我懂了 非常感謝你
你好喔

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題