Note: The other languages of the website are Google-translated. Back to English

如果在Excel中選中復選框,如何在單元格中插入日期戳?

通常,您可以通過在Excel中使用熱鍵輸入日期戳。 如何通過Excel中的複選框將日期戳插入單元格中? 勾選複選框時,時間戳將自動插入到指定的單元格中。 本文將幫助您解決問題。

如果勾選了帶有VBA代碼的複選框,則將日期戳插入到單元格中


如果勾選了帶有VBA代碼的複選框,則將日期戳插入到單元格中


本節將介紹VBA腳本,以幫助您在選中Excel中的複選框時自動將日期戳插入單元格中。 請執行以下操作。

1.插入複選框後,按 其他 + F11 同時打開 Microsoft Visual Basic for Applications 窗口。

2。 在裡面 Microsoft Visual Basic for Applications 窗口中,單擊 插入 > 模塊。 然後將下面的VBA代碼複製並粘貼到“模塊”窗口中。

VBA代碼:如果選中復選框,則將日期戳插入到單元格中

Sub CheckBox_Date_Stamp()
Dim xChk As CheckBox
Set xChk = ActiveSheet.CheckBoxes(Application.Caller)
With xChk.TopLeftCell.Offset(, 1)
    If xChk.Value = xlOff Then
        .Value = ""
    Else
       .Value = Date
    End If
End With
End Sub

3。 按 其他 + Q 關閉鍵 Microsoft Visual Basic for Applications 窗口。

4.右鍵單擊複選框,然後選擇 分配微 從右鍵單擊菜單中。 看截圖:

5。 在裡面 分配宏 對話框中選擇 CheckBox_Date_Stamp宏名 框,然後單擊 OK 按鈕。 看截圖:

勾選複選框時,日期戳將自動插入到相鄰的單元格中。


相關文章:


最佳辦公效率工具

Kutools for Excel解決了您的大多數問題,並使您的生產率提高了80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過300種強大功能。 支持Office / Excel 2007-2019和365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能30天免費試用。 60天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 每天將您的工作效率提高50%,並減少數百次鼠標單擊!
officetab底部
按評論排序
留言 (22)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
謝謝,這很有幫助,我想指出,我發現在復選框左側添加日期戳更有用。 為此,您只需將偏移量更改為 (, -1)
網站主持人對此評論進行了最小化
有沒有辦法用日期和時間做到這一點? 無論哪種方式都感謝您提供的信息!
網站主持人對此評論進行了最小化
Sub CheckBox_Date_Stamp() Dim xChk As CheckBox Set xChk = ActiveSheet.CheckBoxes(Application.Caller) With xChk.TopLeftCell.Offset(, 1) If xChk.Value = xlOff Then .Value = "" Else .Value = Date & " " &時間結束如果以結束子結束
網站主持人對此評論進行了最小化
嗨,
請申請以下 VBA 代碼以添加日期和時間。

子 CheckBox_Date_Stamp()
將 xChk 調暗為複選框
設置 xChk = ActiveSheet.CheckBoxes(Application.Caller)
使用 xChk.TopLeftCell.Offset(, 1)
如果 xChk.Value = xlOff 則
.值 = ""
其他
.Value = 現在()
如果結束
結束
END SUB
網站主持人對此評論進行了最小化
嗨,我嘗試了這個公式,當我將宏應用於 A1 中的複選框時,它僅適用於 A1 和 B1。 但是,當我將宏應用到 A2 中的複選框時,B2 中什麼也沒發生。 另外,如果我想將其用於清單,將如何更改公式? 如果 A 列是複選框,C 列是完成日期。
網站主持人對此評論進行了最小化
嗨 :) 您可以將 A1 中帶有復選框的單元格複製到該列的其餘部分。 或將宏單獨分配給每個複選框
網站主持人對此評論進行了最小化
美好的一天,
請將宏單獨分配給每個複選框。
網站主持人對此評論進行了最小化
我完全複製並粘貼了 VBA 代碼,但在我的電子表格中,日期出現在復選框列上方和右側的單元格中,而不是直接出現在右側的單元格中。 ?
網站主持人對此評論進行了最小化
我也有同樣的問題。 “救命!我需要有人救命!不只是任何人救命!你知道我需要人救命!
網站主持人對此評論進行了最小化
美好的一天,
該代碼在我的情況下運行良好。 選中復選框後,日期將直接顯示在右側的單元格中。 您能否提供您的案例的屏幕截圖。 以及您使用哪個 Office 版本。 謝謝你。
網站主持人對此評論進行了最小化
對於出現在預期單元格上方的單元格中的日期和時間戳(使用 Excel 2007),我遇到了同樣的問題。 我繼續並更改了“偏移”公式,使其越過一個單元格並向下一個單元格,現在郵票出現在我想要的位置:使用 xChk.TopLeftCell.Offset(1, 1)
我正在更新其他人創建但未創建複選框的工作表,但這可能與復選框在單元格內的位置有關。 當我將復選框與單元格底部對齊時,我得到了不同的結果。

希望有幫助!
網站主持人對此評論進行了最小化
這就是我為解決該問題所做的

子 CheckBox_Date_Stamp()
將 xChk 調暗為複選框
設置 xChk = ActiveSheet.CheckBoxes(Application.Caller)
使用 xChk.TopLeftCell.Offset(1, 1)
如果 xChk.Value = xlOff 則
.值 = ""
其他
.Value = 現在()
如果結束
結束
END SUB
網站主持人對此評論進行了最小化
你好! 感謝您的代碼。 它可以完美地與 lil 調整偏移量。 但是,我正在處理一張有很多很多很多行(約 500 多行)的工作表,其中包含大量複選框並且文件大小顯著增加。 有什麼辦法可以減小尺寸嗎? 有什麼替代方法可以做到這一點?

謝謝!
網站主持人對此評論進行了最小化
好噠
如果行中有很多複選框,並且您想同時對所有復選框進行操作,下面的 VBA 代碼可以幫助您。
請將代碼複製到模塊代碼窗口中,返回工作表並創建一個按鈕(例如按鈕(表單控件)),將宏 SetAllChkChange() 分配給按鈕,然後單擊按鈕運行代碼。

現在工作表行中的所有復選框都已激活。 您可以選中其中任何一個以在其相鄰單元格中插入日期戳。

子集AllChkChange()
暗淡的xChks
將 xChk 調暗為複選框
Dim xI As Long
在錯誤恢復下一頁
擦除 xArrChk
設置 xChks = ActiveSheet.CheckBoxes
ReDim Preserve xArrChk(1 To xChks.count)
xI = 1
對於 xChks 中的每個 xChk
xChk.Select
Selection.OnAction = "ObjChkChange"
下一頁
END SUB


子 ObjChkChange()
將 xChk 調暗為複選框
設置 xChk = ActiveSheet.CheckBoxes(Application.Caller)
使用 xChk.TopLeftCell.Offset(, 1)
如果 xChk.Value = xlOff 則
.值 = ""
其他
.Value = 日期
如果結束
結束
END SUB
網站主持人對此評論進行了最小化
如何讓日期戳顯示在我的複選框下?
網站主持人對此評論進行了最小化
你好! 我似乎找不到日期戳位於復選框一側的方法。 我嘗試將偏移值從 0、1 和 -1 更改。 你能幫我解決這個問題嗎? 謝謝你!
網站主持人對此評論進行了最小化
您好,假設您的複選框在 A2 中,並且想要在復選框的右側輸出日期戳(本例中為 B2),請將 Offset 值更改為 Offset(1, 1)。
網站主持人對此評論進行了最小化
我使用 VBA 作為複選框時間戳,但前兩個單元格無法正常工作。 我的第一個複選框在 A2 中,當我選中該框時,時間在 B1 中發布。 我該如何解決?
網站主持人對此評論進行了最小化
您好史蒂夫,
請將代碼中的第四行替換為 With xChk.TopLeftCell.Offset(1, 1)。
網站主持人對此評論進行了最小化
非常感謝你!! 傑出的! 謝謝!
網站主持人對此評論進行了最小化
嗨,我如何循環代碼以包含列中的所有復選框?
網站主持人對此評論進行了最小化
美好的一天,
如果行中有很多複選框,並且您想同時對所有復選框進行操作,下面的 VBA 代碼可以幫助您。
請將下面的代碼複製到模塊代碼窗口中,返回工作表並創建一個按鈕(例如按鈕(表單控件)),分配宏 SetAllChkChange() 到按鈕,然後單擊按鈕運行代碼。

現在工作表行中的所有復選框都已激活。 您可以選中其中任何一個以在其相鄰單元格中插入日期戳。

子集AllChkChange()
'更新者 Extendoffice 20211130
暗淡的xChks
將 xChk 調暗為複選框
在錯誤恢復下一頁
設置 xChks = ActiveSheet.CheckBoxes
對於 xChks 中的每個 xChk
xChk.Select
Selection.OnAction = "ObjChkChange"
下一頁
END SUB

子 ObjChkChange()
將 xChk 調暗為複選框
設置 xChk = ActiveSheet.CheckBoxes(Application.Caller)
使用 xChk.TopLeftCell.Offset(, 1)
如果 xChk.Value = xlOff 則
.值 = ""
其他
.Value = 日期
如果結束
結束
END SUB
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點