返回列表 上一主題 發帖

請問2010輸入日期

請教要如何修改才能在2欄以上使用,也就是說需要使用這個功能在多個相鄰或不相鄰的欄位使用的設定方式? 感恩~!

TOP

請教要如何修改才能在2欄以上使用,也就是說需要使用這個功能在多個相鄰或不相鄰的欄位使用的設定方式? 感恩 ...
Rachel 發表於 2011-10-1 13:50

若為不特定儲存格時 :
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.   With Target
  3.     If .Column = 2 Or .Column = 3 Then
  4.       Calendar1.Visible = True
  5.     Else
  6.       Select Case "C" + Trim(.Column) + "R" + Trim(.Row)
  7.       Case "C1R3"
  8.            ' ===== 點擊 A3 後的處理動作 =====
  9.       Case "C5R12"
  10.            ' ===== 點擊 E12 後的處理動作 =====
  11.       Case Else
  12.            ' ===== 點擊 其他 儲存格後的處理動作 =====
  13.         Calendar1.Visible = False
  14.       End Select
  15.     End If
  16.   End With
  17. End Sub
複製代碼

TOP

回復 12# luhpro

非常感恩大大的回覆~! 但想再請教您的是如果是6排整的欄位需要使用上月曆控制項,程式碼該如何修改呢?
例如:要設定在欄位   B,  C,  D,  E,  F,  D下所有的欄位都可以直接點選使用。

感恩~!

TOP

回復  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 行中的指令永遠都不會執行到.

而第二種寫法 則不論前面是否有執行,
只要條件符合照樣會執行到,
有可能會出現 執行兩次 的情形,
故應留意範圍是否有重疊而需做例外處理.

TOP

我在安裝套件時, 出現曆套件已經存在, 不需安裝,
請問我以在那裡自到這個控制件或如使用?
PETER
簡單, 就是最好

TOP

本帖最後由 zamamilo 於 2012-5-3 23:55 編輯

高手大大,

  我的版本是2010版也有安裝access2010
但執行時會出現

執行階段錯誤’424’
此處需要物件


我的程式如下
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case ActiveCell.Address
    Case Is = "$I$5"
        Calendar1.Visible = True: Calendar1 = Date
        Calendar1.Top = ActiveCell.Top
        Calendar1.Left = ActiveCell.Left
    Case Is = "$B$76"
        Calendar2.Visible = True
        Calendar2.Top = ActiveCell.Top
        Calendar2.Left = ActiveCell.Left
        ActiveCell.Select
    Case Is = "$B$77"
        Calendar2.Visible = True
        Calendar2.Top = ActiveCell.Top
        Calendar2.Left = ActiveCell.Left
    Case Is = "$B$78"
        Calendar2.Visible = True
        Calendar2.Top = ActiveCell.Top
        Calendar2.Left = ActiveCell.Left
    Case Is = "$B$79"
        Calendar2.Visible = True
        Calendar2.Top = ActiveCell.Top
        Calendar2.Left = ActiveCell.Left
    Case Is = "$B$80"
        Calendar2.Visible = True
        Calendar2.Top = ActiveCell.Top
        Calendar2.Left = ActiveCell.Left
    Case Is = "$B$81"
        Calendar2.Visible = True
        Calendar2.Top = ActiveCell.Top
        Calendar2.Left = ActiveCell.Left

End Select

可否煩請大大協助小弟

忘了跟各位大大報告,這段程式當時是在 excel 2003版下完成且執行ok的,但到了excel2010時才會出現
執行階段錯誤’424’
此處需要物件

不知要改那裡。能否請高手大大指導一下。

TOP

回復 16# mingtel


    play.gif
學海無涯_不恥下問

TOP

回復 2# Hsieh

Hsieh版主您好;
請問此月曆控制項是否有其他名稱
因為我的控制項目內只有Microsoft Date and Time Picker Control 6.0(SP6),此月曆控制項名稱
要如何才能換製成版主您的此種月曆控制項中文名稱

TOP

本帖最後由 luhpro 於 2014-9-2 21:10 編輯

回復 18# jackson7015
網路上找一下就有了:
請問一下excel的控制工具箱"月曆"控制項不見了  

微軟的下載網頁:
ACC97: Microsoft Access 97 ActiveX 控制項範例資料庫可用在下載中心
解壓縮後其中的 Mscal.ocx 檔案就包含 月曆控制項

TOP

回復 19# luhpro
感謝luhpro大大的回覆

之前就有搜尋過相關問題,但部分解決方式是直接下載該月曆控制項,如
Office 2010 月曆控制項新增
上述範例出現的控制項目就是我問題中的Microsoft Date and Time Picker Control 6.0(SP6),也是月曆控制項的一種
但是站上分享的控制項目編寫的公式,都是其他的月曆控制項,所以才想請教中文標題的月曆控制項如何下載

主要問題是因為我沒有安裝Access 2007
所以剛剛乾脆直接下載Access Runtime,就能出現中文標題的月曆控制項12.0
如有此問題的版友也可以使用此種方式解決

TOP

        靜思自在 : 世上有兩件事不能等:一、孝順 二、行善。
返回列表 上一主題