ไปยังเนื้อหาหลัก

จะทำให้เซลล์ใดเซลล์หนึ่งต้องป้อนก่อนปิดสมุดงานได้อย่างไร

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

ทำให้เซลล์ต้องป้อนด้วย VBA


ลูกศรสีฟ้าฟองขวา ทำให้เซลล์ต้องป้อนด้วย VBA

1. เปิดใช้งานสมุดงานที่มีเซลล์บังคับแล้วกด Alt + F11 กุญแจเพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2 ใน โครงการ บานหน้าต่างให้ดับเบิลคลิก สมุดงานนี้และไปที่เลือก สมุดงาน และ ก่อนปิด จากรายการส่วนด้านขวาจากนั้นวางโค้ดด้านล่างลงในสคริปต์ ดูภาพหน้าจอ:

VBA: ทำให้เซลล์บังคับ

    If Cells(1, 2).Value = "" Then
        MsgBox "Cell B1 requires user input", vbInformation, "Kutools for Excel"
        Cancel = True
    End If

doc mandantory ป้อน 1

3. จากนั้นบันทึกรหัสนี้และปิดหน้าต่างที่โผล่ขึ้นมานี้ ตอนนี้ถ้าเซลล์ B1 ว่างเปล่าเมื่อคุณปิดสมุดงานกล่องโต้ตอบด้านล่างจะปรากฏขึ้นเพื่อเตือนให้คุณป้อนบางสิ่งใน B1 ดูภาพหน้าจอ:
doc mandantory ป้อน 2

ปลาย: คุณสามารถเปลี่ยนเซลล์ B1 เป็นเซลล์อื่นที่คุณต้องการได้

สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน

🤖 Kutools AI ผู้ช่วย: ปฏิวัติการวิเคราะห์ข้อมูลโดยยึดตาม: การดำเนินการที่ชาญฉลาด   |  สร้างรหัส  |  สร้างสูตรที่กำหนดเอง  |  วิเคราะห์ข้อมูลและสร้างแผนภูมิ  |  เรียกใช้ฟังก์ชัน Kutools...
คุณสมบัติยอดนิยม: ค้นหา เน้น หรือระบุรายการที่ซ้ำกัน   |  ลบแถวว่าง   |  รวมคอลัมน์หรือเซลล์โดยไม่สูญเสียข้อมูล   |   รอบโดยไม่มีสูตร ...
การค้นหาขั้นสูง: VLookup หลายเกณฑ์    VLookup หลายค่า  |   VLookup ข้ามหลายแผ่น   |   การค้นหาที่ไม่ชัดเจน ....
รายการแบบเลื่อนลงขั้นสูง: สร้างรายการแบบหล่นลงอย่างรวดเร็ว   |  รายการแบบหล่นลงขึ้นอยู่กับ   |  เลือกหลายรายการแบบหล่นลง ....
ผู้จัดการคอลัมน์: เพิ่มจำนวนคอลัมน์เฉพาะ  |  ย้ายคอลัมน์  |  สลับสถานะการมองเห็นของคอลัมน์ที่ซ่อนอยู่  |  เปรียบเทียบช่วงและคอลัมน์ ...
คุณสมบัติเด่น: กริดโฟกัส   |  มุมมองการออกแบบ   |   บาร์สูตรใหญ่    สมุดงานและตัวจัดการชีต   |  ห้องสมุดทรัพยากร (ข้อความอัตโนมัติ)   |  เลือกวันที่   |  รวมแผ่นงาน   |  เข้ารหัส/ถอดรหัสเซลล์    ส่งอีเมลตามรายการ   |  ซุปเปอร์ฟิลเตอร์   |   ตัวกรองพิเศษ (กรองตัวหนา/ตัวเอียง/ขีดทับ...) ...
ชุดเครื่องมือ 15 อันดับแรก12 ข้อความ เครื่องมือ (เพิ่มข้อความ, ลบอักขระ, ... )   |   50 + แผนภูมิ ประเภท (แผนภูมิ Gantt, ... )   |   40+ ใช้งานได้จริง สูตร (คำนวณอายุตามวันเกิด, ... )   |   19 การแทรก เครื่องมือ (ใส่ QR Code, แทรกรูปภาพจากเส้นทาง, ... )   |   12 การแปลง เครื่องมือ (ตัวเลขเป็นคำ, การแปลงสกุลเงิน, ... )   |   7 ผสานและแยก เครื่องมือ (แถวรวมขั้นสูง, แยกเซลล์, ... )   |   ... และอื่น ๆ

เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา  คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...

รายละเอียด


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

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
Comments (31)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How would I do this if I am wanting to to apply to the entire workbook with the exception of a few columns. I have columns A:AA and currently have 4,527 rows but more will be added and I will need to make sure the new rows have the same requirement. I need all fields to be requires with the exception of the below.

• Artemis (Column A)
• Host Access Location (Column H)
• Creation Tool (Synthesia) (Column R)
• Search Terms (Column U)
• Notes (Column V)
• eReview SME (column Z)
• Voice Talent (column AA)

Can you please assist in how I can set this up and include any future rows a added?
This comment was minimized by the moderator on the site
How would I do this if I am wanting to to apply to the entire workbook with the exception of a few columns. I have columns A:AA and currently have 4,527 rows but more will be added and I will need to make sure the new rows have the same requirement. I need all fields to be requires with the exception of the below.

• Artemis (Column A)
• Host Access Location (Column H)
• Creation Tool (Synthesia) (Column R)
• Search Terms (Column U)
• Notes (Column V)
• eReview SME (column Z)
• Voice Talent (column AA)

Can you please assist in how I can set this up and include any future rows a added?
This comment was minimized by the moderator on the site
Sorry Sir,

For somebody using VBA for first time, can you please provide some guidance on how to initiate this? I want each row to have same feature I.E. (until one completes all info on row)
This comment was minimized by the moderator on the site
Hi, PM, just follow the steps in this article, then replace the code with the code I provided for you, and then save it. And when you share the workbook to others whose username are different with you, they will be asked to fill every cell in the range (a1:c3, you can change it in the code) until they fill all.
This comment was minimized by the moderator on the site
Thank you so very much, apologies I did not reply back.
This comment was minimized by the moderator on the site
Do mention it. I am glad that can help you.
This comment was minimized by the moderator on the site
Can I email you document so you can best advise me how to implement VBA code so file cannot save if each row is not fully populated? Mine is a bit tricky. Will appreciate the help, been trying for so long.
This comment was minimized by the moderator on the site
Hi, here is a code, it will pops a dialog to remind the user which cell is needed entered, and the workbook cannot be closed and saved until all cells in the range a1:c3 are all filled with contents.
Please modify the script in the code:
1. change the range as you need,
2. change the the user name "Kutools for Excel" in the code to your own username (please make sure other user has no the same user name with you)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    If Application.UserName <> "Kutools for Excel" Then

        Set Rg = Sheets("Sheet2").Range("a1:c3")

        If WorksheetFunction.CountBlank(Rg) > 0 Then

            MsgBox Rg.Parent.Name & " " & Rg.Address & " requires user input", vbInformation, "Kutools for Excel"
            Cancel = True
        End If
    End If

End Sub
This comment was minimized by the moderator on the site
Is het mogelijk om als regel erin te zetten dat als C1 een bepaalde tekst bevat dan D1 ook ingevuld moet worden. Dit moet gelden voor circa 2.000 regels. Het bestand wordt elke keer aangevuld dus het moet alleen gelden voor het aantal regels die nu zijn ingevuld.

Wanneer ik volgende functie erin zet werkt het niet zoals ik wil omdat ik dan meldingen krijg van cellen die nog aangevuld moeten worden en ik wil een tekst als waarde en geen cijfer.

Als Application.WorksheetFunction.CountA(Range("B16:B300")) > 0 then

If Application.WorksheetFunction.CountA(Range("D16:D300")) <> Range("D16:D300").Count Then

MsgBox "Cell D16:D300 vereist gebruikersinvoer", vbInformation, "Kutools for Excel"

Annuleren = Waar

End If

End If

Gr emma
This comment was minimized by the moderator on the site
Is it possible to create a code in a new generated workbook? the scenario is, I will generate a new workbook, and that generated workbook must have a mandatory field to be filled, the user cannot save unless it is not filled the mandatory field. I have already created, generated a new workbook. my problem is, the new generated workbook does not have a code.
This comment was minimized by the moderator on the site
Question, the code worked, but how can choose a range from A7:M7 up to the last row?

and whenever the user will save or close the workbook, the mandatory field have to be filled out
This comment was minimized by the moderator on the site
Hi, Lester, here is a code we modified may help you, change the range A2:F2 to the range as you need.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'UpdatebyExtend20220916
Dim xRgCount As Integer

Dim xURg As Range

Dim xStr As String

Dim xWSh As Worksheet

Dim xRg, xRg1, xRg2, xRg3 As Range

xStr = "A2:F2"

 

Set xWSh = Application.ActiveSheet

Set xRg = xWSh.Range(xStr)

Set xURg = xWSh.UsedRange

Set xRg1 = xWSh.Cells.Item(xRg.Row + xRg.Rows.Count, 1)

Set xRg2 = xURg.Item(xURg.Count)

Set xRg3 = xWSh.Range(xRg1, xRg2)

Debug.Print xRg3.Address

If (xURg.Row + xURg.Rows.Count - 1) > (xRg.Row + xRg.Rows.Count - 1) Then

   If Application.WorksheetFunction.CountA(xRg3) <> xRg3.Count Then

    MsgBox "There are blank cells under range A2:F2", vbInformation, "Kutools for Excel"

Cancel = True

   End If

End If

End Sub


This comment was minimized by the moderator on the site
Is there a way to make a cells input mandatory before an Active X command button can be used? I have a command button setup to submit a form via email but want to make certain cells mandatory before the button will submit the email.
This comment was minimized by the moderator on the site
Hi, Craig, sorry this problem cannot be solved here, maybe other else can help you.
This comment was minimized by the moderator on the site
i want to make the tick marks mandatory in sheet
This comment was minimized by the moderator on the site
I want to make rows C2 to C7 mandatory and C13 to C19 mandatory?

Any help?

2 sets of ranges are here but under the same column.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations