標題:
[發問]
日曆控制項如何設置成,在[目前儲存格]寫入指定日曆的日期?
[打印本頁]
作者:
jackson7015
時間:
2014-8-28 17:00
標題:
日曆控制項如何設置成,在[目前儲存格]寫入指定日曆的日期?
想請問各位前輩
日曆控制項如何將
目前儲存格
寫入,選取日曆後的日期?
目前連
指定儲存格
寫入日期都寫不出來...
作者:
luhpro
時間:
2014-8-28 23:01
本帖最後由 luhpro 於 2014-8-28 23:18 編輯
想請問各位前輩
日曆控制項如何將目前儲存格寫入,選取日曆後的日期?
目前連指定儲存格寫入日期都寫不出 ...
jackson7015 發表於 2014-8-28 17:00
我拿我以前寫好的程式碼來改:
月曆控制項 : mvDate
清除日期按鈕 : cbClrDate
執行方式:
1. 對 [A1] 儲存格按滑鼠右鍵, 啟動 月曆控制項 與 清除日期按鈕.
2-1. 若此時點擊 清除日期按鈕 會清空 目前儲存格, 然後隱藏 控制項 與 按鈕.
2-2. 若此時在 月曆控制項 點擊任一日期, 會將該日期設定到 目前儲存格, 然後隱藏 控制項 與 按鈕.
以下程式碼放在 Sheets("工作表1") (月曆控制項 與 清除日期按鈕 都放在此工作表內)
Private Sub mvDate_DateClick(ByVal DateClicked As Date)
rTar = DateClicked ' 設定日期到 目前儲存格
mvDate.Visible = False ' 隱藏日曆表
cbClrDate.Visible = False ' 隱藏清除日期鈕
End Sub
Private Sub cbClrDate_Click()
rTar = "" ' 清空 目前儲存格
mvDate.Visible = False
cbClrDate.Visible = False
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Row = 1 And .Column = 1 Then ' 對 [A1} 儲存格按滑鼠右鍵
mvOpenDate.Visible = True ' 顯示日曆表
cbClearDate.Visible = True ' 顯示清除日期鈕
Cancel = True ' 不繼續執行原先按滑鼠右鍵會執行的功能
Exit Sub
End If
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set rTar = Target ' 設定 rTar 為 目前儲存格
End Sub
複製代碼
以下程式碼放在 ThisWorkBook :
Private Sub Workbook_Open()
With Sheets("工作表1")
rTar = ""
With .mvDate
.Visible = True ' 顯示日曆表
.Value = Date ' 設定預設值為今天
.Visible = False ' 隱藏日曆表
End With
.cbClrDate.Visible = False ' 隱藏清除日期鈕
End With
End Sub
複製代碼
以下程式碼放在 Module :
Public rTar As Range
Option Explicit
複製代碼
作者:
jackson7015
時間:
2014-8-29 16:09
回復
2#
luhpro
感謝luhpro大大的幫忙
因為自己電腦終沒有Access,所以我的月曆控制項目是另外載入的,來源則是由2007中取出的
宣告模組是DTPicker1_CallbackKeyDown
所以不曉得怎麼編寫
因為控制項目內沒有月曆控制項和清除日期按鈕
帶入大大提供的公式,執行程序沒有反應
而使用網路上其他類似的編寫,也是有錯誤
不曉得是否有其他前備有類似經驗
作者:
luhpro
時間:
2014-8-30 09:20
本帖最後由 luhpro 於 2014-8-30 09:27 編輯
回復
3#
jackson7015
試試看:
cbClrDate : 清除日期按鈕
dtpDate : 日曆表
以下程式碼放在 ThisWorkBook :
Private Sub Workbook_Open()
With Sheets("工作表1")
Set rTar = [A2]
With .dtpDate
.Visible = True ' 顯示日曆表
.Value = Date ' 設定預設值為今天
.Visible = False ' 隱藏日曆表
End With
.cbClrDate.Visible = False ' 隱藏清除日期鈕
End With
End Sub
複製代碼
以下程式碼放在 Module :
Public rTar As Range
Option Explicit
複製代碼
以下程式碼放在 Sheets("工作表1") (月曆控制項 與 清除日期按鈕 都放在此工作表內) :
Private Sub dtpDate_Change()
SetDate
End Sub
Private Sub dtpDate_CloseUp()
SetDate
End Sub
Private Sub cbClrDate_Click()
rTar = "" ' 清空 目前儲存格
dtpDate.Visible = False
cbClrDate.Visible = False
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Row = 1 And .Column = 1 Then ' 對 [A1} 儲存格按滑鼠右鍵
dtpDate.Visible = True ' 顯示日曆表
cbClrDate.Visible = True ' 顯示清除日期鈕
Cancel = True ' 不繼續執行原先按滑鼠右鍵會執行的功能
Exit Sub
End If
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
If .Row <> 1 And .Column <> 1 Then
Set rTar = Target ' 設定 rTar 為 目前儲存格
End If
End With
End Sub
Private Sub SetDate()
With rTar
.Value = dtpDate ' 設定日期到 目前儲存格
.NumberFormat = "yyyy/m/d;@"
End With
cbClrDate.Visible = False ' 隱藏清除日期鈕
dtpDate.Visible = False ' 隱藏日曆表
End Sub
複製代碼
附註 : 以上程式不能適用於 A1 儲存格
另上方 #2 程式碼有誤 :
行 16 與 17 應改為
mvDate.Visible = True ' 顯示日曆表
cbClrDate.Visible = True ' 顯示清除日期鈕
複製代碼
作者:
starry1314
時間:
2015-5-18 17:30
回復
4#
luhpro
大大請問如果使用2013要使用什麼嗎?
使用此程式碼沒有反應。。。對a1右鍵也無反應。。。
作者:
starry1314
時間:
2015-5-18 23:45
回復
4#
luhpro
已解決...
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)