- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
14#
發表於 2011-10-8 06:04
| 只看該作者
回復 luhpro
但想再請教您的是如果是6排整的欄位需要使用上月曆控制項,程式碼該如何修改呢?
例如:要設定在欄位 B, C, D, E, F, D下所有的欄位都可以直接點選使用。
Rachel 發表於 2011-10-8 01:38 
嗯..., 有兩種寫法 :
03. If .Column > 1 and .Column < 8 Then
或 (調整 第 3 行 到 第 5 行 及 第 15 行 的內容)
原 03. Select Case .Column
Case 2 To 7
原 04. Calendar1.Visible = True
Case Else
End Select
原 05. (Else 刪除)
原 15. (End If 刪除)
第一種方式適合 "單一組" 連續欄位範圍 的處理,
而第二種方式則彈性比較大. (用法請參閱 VBA說明 -> Select Case 陳述式)
比較需要留意的是 :
第 1 種寫法中因為 第 3 行 與 第 6 行 互斥,(Else 功能等同 Not)
03. If .Column > 1 and .Column < 8 Then
04. Calendar1.Visible = True
05. Else
06. Select Case "C" + Trim(.Column) + "R" + Trim(.Row)
14. End Select
15. End If
所以若兩者有 重疊的區域 且都應 觸發到條件 時,
底下第 6 行中的指令永遠都不會執行到.
而第二種寫法 則不論前面是否有執行,
只要條件符合照樣會執行到,
有可能會出現 執行兩次 的情形,
故應留意範圍是否有重疊而需做例外處理. |
|