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 สำหรับแอปพลิเคชัน หน้าต่าง

2 ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่างคลิก สิ่งที่ใส่เข้าไป > โมดูล. จากนั้นคัดลอกและวางโค้ด 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 สำหรับแอปพลิเคชัน หน้าต่าง

4. คลิกขวาที่กล่องกาเครื่องหมายแล้วเลือก กำหนดไมโคร จากเมนูคลิกขวา ดูภาพหน้าจอ:

5 ใน กำหนดมาโคร ใหเลือก CheckBox_Date_Stamp ใน ชื่อมาโคร จากนั้นคลิกที่ไฟล์ OK ปุ่ม. ดูภาพหน้าจอ:

เมื่อติ๊กช่องทำเครื่องหมายการประทับวันที่จะถูกแทรกลงในเซลล์ที่อยู่ติดกันโดยอัตโนมัติ


บทความที่เกี่ยวข้อง:


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (22)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณ สิ่งนี้มีประโยชน์มาก ฉันต้องการทราบว่าฉันพบว่าการประทับวันที่ทางด้านซ้ายของช่องทำเครื่องหมายมีประโยชน์มากกว่า การทำเช่นนี้คุณเพียงแค่เปลี่ยนออฟเซ็ตเป็น (, -1)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีใดบ้างในการทำเช่นนี้กับวันที่และเวลา? ขอบคุณสำหรับข้อมูลในทางใดทางหนึ่ง!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Sub CheckBox_Date_Stamp() Dim xChk เป็น CheckBox Set xChk = ActiveSheet.CheckBoxes(Application.Caller) ด้วย xChk.TopLeftCell.Offset(, 1) ถ้า xChk.Value = xlOff แล้ว .Value = "" Else .Value = Date & " " & เวลาสิ้นสุดถ้าสิ้นสุดด้วยสิ้นสุด Sub
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
โปรดใช้รหัส VBA ด้านล่างเพื่อเพิ่มวันที่และเวลา

ช่องทำเครื่องหมายย่อย_Date_Stamp()
Dim xChk เป็นช่องทำเครื่องหมาย
ตั้งค่า xChk = ActiveSheet.CheckBoxes (Application.Caller)
ด้วย xChk.TopLeftCell.Offset(, 1)
ถ้า xChk.Value = xlOff แล้ว
.ค่า = ""
อื่น
.Value = ตอนนี้ ()
End If
จบด้วย
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันลองใช้สูตรนี้แล้วและใช้ได้เฉพาะกับ A1 และ B1 เมื่อฉันใช้มาโครกับช่องกาเครื่องหมายใน A1 อย่างไรก็ตาม เมื่อฉันใช้มาโครกับช่องกาเครื่องหมายใน A2 ไม่มีอะไรเกิดขึ้นใน B2 สูตรจะเปลี่ยนไปอย่างไรถ้าฉันต้องการใช้สิ่งนี้สำหรับรายการตรวจสอบ หากคอลัมน์ A เป็นช่องทำเครื่องหมายและคอลัมน์ C เป็นวันที่เสร็จสมบูรณ์
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี :) คุณสามารถคัดลอกเซลล์ด้วยช่องทำเครื่องหมายใน A1 ไปยังส่วนที่เหลือของคอลัมน์ หรือกำหนดมาโครทีละรายการให้กับแต่ละช่องทำเครื่องหมาย
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอให้เป็นวันที่ดี,
โปรดกำหนดมาโครแต่ละรายการให้กับช่องทำเครื่องหมายแต่ละช่อง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันคัดลอกและวางโค้ด VBA ทุกประการ แต่ในสเปรดชีตของฉัน วันที่จะปรากฏในเซลล์ด้านบนและทางด้านขวาของคอลัมน์กล่องกาเครื่องหมาย ไม่ใช่ในเซลล์ทางด้านขวาโดยตรง ?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันยังมีปัญหาเดียวกันที่แน่นอน "ช่วยด้วย! ฉันต้องการใครสักคน ช่วยด้วย! ไม่ใช่แค่ใครก็ได้ ช่วยด้วย! คุณรู้ว่าฉันต้องการใครสักคน ช่วยด้วย!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วันดี,
รหัสทำงานได้ดีในกรณีของฉัน หลังจากทำเครื่องหมายที่ช่องทำเครื่องหมาย วันที่จะปรากฏในเซลล์ทางด้านขวาโดยตรง คุณจะให้ภาพหน้าจอของกรณีของคุณ และคุณใช้ Office เวอร์ชันใด ขอขอบคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีปัญหาเดียวกันกับการประทับวันที่และเวลาที่ปรากฏในเซลล์เหนือเซลล์ที่ต้องการ (โดยใช้ Excel 2007) ฉันไปข้างหน้าและแก้ไขสูตร "ออฟเซ็ต" เพื่อให้เกินหนึ่งเซลล์และลงไปหนึ่งเซลล์ และตอนนี้ตราประทับปรากฏอยู่ในตำแหน่งที่ฉันต้องการ: ด้วย xChk.TopLeftCell.Offset(1, 1)
ฉันกำลังอัปเดตเวิร์กชีตที่คนอื่นสร้างและไม่ได้สร้างช่องทำเครื่องหมาย แต่อาจเกี่ยวข้องกับตำแหน่งที่วางกล่องกาเครื่องหมายภายในเซลล์ ฉันได้ผลลัพธ์ที่ต่างออกไปเมื่อจัดเรียงช่องกาเครื่องหมายที่ด้านล่างของเซลล์

หวังว่าจะช่วยให้!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี่คือสิ่งที่ฉันทำเพื่อแก้ไขปัญหานั้น

ช่องทำเครื่องหมายย่อย_Date_Stamp()
Dim xChk เป็นช่องทำเครื่องหมาย
ตั้งค่า xChk = ActiveSheet.CheckBoxes (Application.Caller)
ด้วย xChk.TopLeftCell.Offset(1, 1)
ถ้า xChk.Value = xlOff แล้ว
.ค่า = ""
อื่น
.Value = ตอนนี้ ()
End If
จบด้วย
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี! ขอบคุณสำหรับรหัส มันทำงานได้อย่างสมบูรณ์แบบด้วยการปรับแต่งเล็กน้อยบนออฟเซ็ต อย่างไรก็ตาม ฉันกำลังทำงานกับชีตที่มีหลายแถวหลายแถว (~500+ แถว) ซึ่งมีกล่องกาเครื่องหมายโหลดมากมาย และขนาดไฟล์ก็ขยายใหญ่ขึ้นอย่างเห็นได้ชัด มีวิธีลดขนาดมั้ยคะ? มีวิธีอื่นในการทำเช่นนี้หรือไม่?

ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ดี da
หากมีกล่องกาเครื่องหมายจำนวนมากในแถว และคุณต้องการดำเนินการกับกล่องกาเครื่องหมายทั้งหมดพร้อมกัน โค้ด VBA ด้านล่างสามารถช่วยคุณได้
โปรดคัดลอกรหัสลงในหน้าต่างรหัสโมดูล กลับไปที่เวิร์กชีตและสร้างปุ่ม (เช่น ปุ่ม (การควบคุมแบบฟอร์ม)) กำหนดมาโคร SetAllChkChange() ให้กับปุ่ม จากนั้นคลิกปุ่มเพื่อเรียกใช้โค้ด

ตอนนี้กล่องกาเครื่องหมายทั้งหมดในแถวของเวิร์กชีตของคุณได้รับการเปิดใช้งานแล้ว คุณสามารถตรวจสอบรายการใดก็ได้เพื่อแทรกการประทับวันที่ในเซลล์ที่อยู่ติดกัน

ชุดย่อยAllChkChange()
ติ่มซำ xChks
Dim xChk เป็นช่องทำเครื่องหมาย
ติ่มซำ xI นาน
เกี่ยวกับข้อผิดพลาดต่อไป
ลบ xArrChk
ตั้งค่า xChks = ActiveSheet.CheckBoxes
ReDim Preserve xArrChk (1 ถึง xChks.count)
xI = 1
สำหรับแต่ละ xChk ใน xChks
xChk.เลือก
Selection.OnAction = "ObjChkChange"
ต่อไป
ย่อยสิ้นสุด


ย่อย ObjChkChange()
Dim xChk เป็นช่องทำเครื่องหมาย
ตั้งค่า xChk = ActiveSheet.CheckBoxes (Application.Caller)
ด้วย xChk.TopLeftCell.Offset(, 1)
ถ้า xChk.Value = xlOff แล้ว
.ค่า = ""
อื่น
.Value = วันที่
End If
จบด้วย
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันจะได้รับตราประทับวันที่แสดงภายใต้กล่องกาเครื่องหมายของฉันได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี! ฉันไม่สามารถหาวิธีที่จะประทับวันที่ที่ด้านข้างของกล่องกาเครื่องหมาย ฉันลองเปลี่ยนค่าออฟเซ็ตจาก 0, 1 และ -1 คุณช่วยฉันด้วยได้ไหม ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี สมมติว่าช่องทำเครื่องหมายของคุณอยู่ใน A2 และต้องการแสดงวันที่ทางด้านขวาของช่องทำเครื่องหมาย (ในกรณีนี้คือ B2) โปรดเปลี่ยนค่า Offset เป็น Offset (1, 1)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันใช้ VBA สำหรับการประทับเวลาของช่องทำเครื่องหมาย แต่สองเซลล์แรกทำงานไม่ถูกต้อง ช่องทำเครื่องหมายแรกของฉันอยู่ใน A2 เมื่อฉันทำเครื่องหมายที่ช่อง เวลาจะแสดงใน B1 ฉันจะแก้ไขปัญหานี้ได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีสตีฟ
โปรดแทนที่บรรทัดที่สี่ในโค้ดด้วย With xChk.TopLeftCell.Offset(1, 1)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก!! ฉลาดหลักแหลม! ขอขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันจะวนโค้ดเพื่อรวมช่องทำเครื่องหมายทั้งหมดในคอลัมน์ได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วันดี,
หากมีช่องทำเครื่องหมายหลายช่องในแถว และคุณต้องการดำเนินการกับช่องทำเครื่องหมายทั้งหมดพร้อมกัน โค้ด VBA ด้านล่างสามารถช่วยคุณได้
โปรดคัดลอกรหัสด้านล่างลงในหน้าต่างรหัสโมดูล กลับไปที่เวิร์กชีตและสร้างปุ่ม (เช่น ปุ่ม (ตัวควบคุมฟอร์ม)) กำหนดมาโคร SetAllChkChange() ไปที่ปุ่ม จากนั้นคลิกปุ่มเพื่อเรียกใช้โค้ด

ตอนนี้กล่องกาเครื่องหมายทั้งหมดในแถวของเวิร์กชีตของคุณได้รับการเปิดใช้งานแล้ว คุณสามารถตรวจสอบรายการใดก็ได้เพื่อแทรกการประทับวันที่ในเซลล์ที่อยู่ติดกัน

ชุดย่อยAllChkChange()
'ปรับปรุงโดย Extendoffice 20211130
ติ่มซำ xChks
Dim xChk เป็นช่องทำเครื่องหมาย
เกี่ยวกับข้อผิดพลาดต่อไป
ตั้งค่า xChks = ActiveSheet.CheckBoxes
สำหรับแต่ละ xChk ใน xChks
xChk.เลือก
Selection.OnAction = "ObjChkChange"
ต่อไป
ย่อยสิ้นสุด

ย่อย ObjChkChange()
Dim xChk เป็นช่องทำเครื่องหมาย
ตั้งค่า xChk = ActiveSheet.CheckBoxes (Application.Caller)
ด้วย xChk.TopLeftCell.Offset(, 1)
ถ้า xChk.Value = xlOff แล้ว
.ค่า = ""
อื่น
.Value = วันที่
End If
จบด้วย
ย่อยสิ้นสุด
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL