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

จะอนุญาตเฉพาะรูปแบบวันที่ในเซลล์เฉพาะได้อย่างไร

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

อนุญาตเฉพาะรูปแบบวันที่ในเซลล์เฉพาะที่มีฟังก์ชันการตรวจสอบข้อมูล

อนุญาตเฉพาะรูปแบบวันที่ในเซลล์เฉพาะที่มีรหัส VBA


ลูกศรสีฟ้าฟองขวา อนุญาตเฉพาะรูปแบบวันที่ในเซลล์เฉพาะที่มีฟังก์ชันการตรวจสอบข้อมูล

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

1. คลิก ข้อมูล > การตรวจสอบข้อมูล > การตรวจสอบข้อมูลดูภาพหน้าจอ:

doc อนุญาตวันที่ 1

2. ใน การตรวจสอบข้อมูล คลิกตกลง การตั้งค่า แล้วเลือก ประเพณี จาก อนุญาต รายการแบบหล่นลงจากนั้นป้อนสูตรนี้: = AND (ISNUMBER (B2), LEFT (CELL ("รูปแบบ", B2), 1) = "D") เข้าไปใน สูตร กล่องข้อความดูภาพหน้าจอ:

doc อนุญาตวันที่ 2

หมายเหตุ: ในสูตรข้างต้น B2 เป็นเซลล์แรกของคอลัมน์ที่คุณต้องการ จำกัด รูปแบบข้อมูล

doc อนุญาตวันที่ 3

3. จากนั้นไปที่คลิก การแจ้งเตือนข้อผิดพลาด ในกล่องโต้ตอบโปรดดำเนินการดังต่อไปนี้:

(1. ) ตรวจสอบ แสดงการแจ้งเตือนข้อผิดพลาดหลังจากป้อนข้อมูลที่ไม่ถูกต้อง ตัวเลือก;

(2. ) ภายใต้ สไตล์ แบบเลื่อนลงโปรดเลือก หยุด ตัวเลือก;

(3. ) พิมพ์ ชื่อหนังสือ และ เกิดข้อผิดพลาด ที่คุณต้องการแสดงในกล่องพร้อมต์

4. หลังจากเสร็จสิ้นการตั้งค่าคลิก OK และตอนนี้เมื่อคุณป้อนข้อมูลที่ไม่ใช่รูปแบบวันที่จริงกล่องพร้อมต์จะปรากฏขึ้นเพื่อเตือนคุณตามภาพหน้าจอต่อไปนี้:

doc อนุญาตวันที่ 4


ลูกศรสีฟ้าฟองขวา อนุญาตเฉพาะรูปแบบวันที่ในเซลล์เฉพาะที่มีรหัส VBA

วิธีที่สองฉันจะแนะนำรหัส VBA ให้คุณ

1. เปิดใช้งานแผ่นงานที่คุณต้องการใช้

2. จากนั้นคลิกขวาที่แท็บแผ่นงานแล้วเลือก ดูรหัส จากเมนูบริบทดูภาพหน้าจอ:

doc อนุญาตวันที่ 5

3. ในไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน คัดลอกและวางโค้ดด้านล่างลงในไฟล์ โมดูลดูภาพหน้าจอ:

รหัส VBA: อนุญาตให้ป้อนรูปแบบวันที่ในเซลล์เฉพาะ:

Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice
Set w = ActiveSheet.Range("B2:B12")
For Each c In w
If c.Value <> "" And Not IsDate(c) Then
c.ClearContents
MsgBox "Only a date format is permitted in this cell."
End If
Next c
End Sub

doc อนุญาตวันที่ 6

4. จากนั้นบันทึกโฆษณาปิดโค้ดตอนนี้เมื่อคุณป้อนค่าที่ไม่ใช่รูปแบบวันที่ในช่วง B2: B12 กล่องพร้อมต์จะปรากฏขึ้นเพื่อเตือนคุณและค่าของเซลล์จะถูกล้างในเวลาเดียวกันดูภาพหน้าจอ:

doc อนุญาตวันที่ 7


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

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

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

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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มผลผลิตของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab

 

จัดเรียงความคิดเห็นโดย
ความคิดเห็น (8)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฟังก์ชันนี้อนุญาตให้ใช้รูปแบบวันที่ใด มันไม่ทำงานสำหรับบางวันที่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วิธีเพิ่มการตรวจสอบวันที่สำหรับรูปแบบวันที่ "DD-mmm-yyy" (15-Dec-2018) เช่นนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมากสำหรับรหัส VBA ที่จะนำไปใช้กับหลายคอลัมน์ คุณช่วยระบุสูตรได้ไหม.. ฉันลองแล้ว แต่ได้รับข้อผิดพลาด 405!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีเควิน
ในการทำให้โค้ดใช้กับหลายช่วง คุณเพียงแค่เพิ่มการอ้างอิงเซลล์ลงในโค้ดดังต่อไปนี้:

Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)
ตั้งค่า w = ActiveSheet.Range("B2:B12,A1:A10,C5:C20")
สำหรับแต่ละ c ใน w
ถ้า c.Value <> "" และไม่ใช่ IsDate(c) แล้ว
ค. เนื้อหาที่ชัดเจน
MsgBox "อนุญาตให้ใช้เฉพาะรูปแบบวันที่ในเซลล์นี้"
End If
ถัดไปค
ย่อยสิ้นสุด

โปรดลอง หวังว่าจะช่วยคุณได้!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมาก @skyyang ขอบคุณมากสำหรับความช่วยเหลือของคุณ :)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันจะบังคับให้ป้อนเวลาได้อย่างไร? (hh:mm) แผ่นงานย่อยส่วนตัว_เปลี่ยน (ByVal Target As Range)
'updateby Extendoffice 20150530
ตั้งค่า w = ActiveSheet.Range("B2:B12")
สำหรับแต่ละ c ใน w
ถ้า c.Value <> "" และไม่ใช่ IsDate(c) แล้ว <--------------------------- และไม่ใช่ isTime(c) ไม่ทำงาน!
ค. เนื้อหาที่ชัดเจน
MsgBox "อนุญาตให้ใช้เฉพาะรูปแบบวันที่ในเซลล์นี้"
End If
ถัดไปค
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี โรแบร์โต้

หากต้องการอนุญาตให้ป้อนรูปแบบเวลาเท่านั้น คุณควรใช้รหัสด้านล่าง:



Worksheet_Change ย่อยส่วนตัว (เป้าหมายเป็นช่วง ByVal)

'updateby Extendoffice

Dim xArr เป็น Variant

Dim xF เป็นจำนวนเต็ม

Dim xB เป็นบูลีน

Dim xWRg, xCRg เป็นช่วง

ตั้งค่า xWRg = ActiveSheet.Range("B2:B20")

สำหรับแต่ละ xCRg ใน xWRg

xArr = แยก (xCRg.Value, ":")

xB = เท็จ

ถ้า UBound(xArr) <= 2 แล้ว

สำหรับ xF = LBound(xArr) ถึง UBound(xArr)

ถ้า IsNumeric(xArr(xF)) แล้ว

ถ้า xF = 0 แล้ว

ถ้า (xArr(xF) > 0) และ (xArr(xF) < 24) แล้ว

อื่น

xB = จริง

ไปที่ BTime

End If

อื่น

ถ้า (xArr(xF) > 0) และ (xArr(xF) < 60) แล้ว

อื่น

xB = จริง

ไปที่ BTime

End If

End If

อื่น

xB = จริง

ไปที่ BTime

End If

ต่อไป

อื่น

MsgBox "อนุญาตให้ใช้เฉพาะรูปแบบเวลาในเซลล์นี้"

xCRg.ClearContents

End If

เวลาบี:

ถ้า xB แล้ว

MsgBox "อนุญาตให้ใช้เฉพาะรูปแบบเวลาในเซลล์นี้"

xCRg.ClearContents

End If

xCRg . ถัดไป

ย่อยสิ้นสุด



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