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

Làm cách nào để bắt buộc nhập một ô cụ thể trước khi đóng sổ làm việc?

Ví dụ: khi bạn chia sẻ sổ làm việc với những người dùng khác để thực hiện khảo sát cần đăng ký tên thật, mọi người dùng đang được điều tra cần nhập tên của họ vào B1. Nhưng trong một số trường hợp, một số người dùng có thể đóng sổ làm việc sau khi điều tra mà không cần nhập tên của họ. Trong bài viết này, tôi giới thiệu một VBA để bắt buộc một ô cụ thể trước khi đóng sổ làm việc.

Thực hiện nhập bắt buộc ô với VBA


mũi tên màu xanh bong bóng bên phải Thực hiện nhập bắt buộc ô với VBA

1. Bật sổ làm việc có chứa ô bắt buộc và nhấn Alt + F11 chìa khóa để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. bên trong Dự án ngăn, nhấp đúp Sổ làm việc nàyvà đi đến chọn Bảng tínhTrước khi Đóng từ danh sách phần bên phải, sau đó dán mã bên dưới vào tập lệnh. Xem ảnh chụp màn hình:

VBA: Đặt ô bắt buộc

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

doc mandantory nhập 1

3. Sau đó lưu mã này và đóng cửa sổ bật lên này. Bây giờ, nếu ô B1 trống khi bạn đóng sổ làm việc, hộp thoại bên dưới sẽ bật ra để nhắc bạn nhập nội dung nào đó vào ô B1. Xem ảnh chụp màn hình:
doc mandantory nhập 2

Mẹo: Bạn có thể thay đổi ô B1 thành các ô khác mà bạn muốn.


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (30)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
làm cách nào để bắt buộc cột D16-D300 nếu cột B16-300 có các giá trị? Tôi đã sử dụng mã bên dưới cho hàng 16 và thử các biến thể nhưng nó không hoạt động. Bất kỳ trợ giúp nào cũng được đánh giá rất cao! 'chúng tôi kinh doanh như một lĩnh vực bắt buộc- cần phải sửa nếu không có trường nào ở đó và cửa sổ bật lên Private Sub Workbook_BeforeClose (Cancel As Boolean)' Bước 1: Kiểm tra xem ô A1 có trống không If Sheets ("Sensitive Leave Tracker"). Phạm vi ("B16"). Giá trị "" Và Trang tính ("Trình theo dõi lượt rời khỏi nhạy cảm"). Phạm vi ("D16"). Giá trị = "" Sau đó 'Bước 2: Trống: hủy Đóng và nói với người dùng Cancel = True MsgBox "Cant bắt buộc phải đóng trường "" Bước 3: Không trống; Save and Close Khác ActiveWorkbook.Close SaveChanges: = True End If End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, xin lỗi vì đã trả lời quá muộn. Đây là mã macro mà bạn có thể cần. Nếu nó hoạt động, xin vui lòng cho tôi biết. Thanks!

Nếu Application.WorksheetFunction.CountA (Phạm vi ("B16: B300"))> 0 Thì

If Application.WorksheetFunction.CountA (Range ("D16: D300")) <> Range ("D16: D300"). Đếm sau đó

MsgBox "Ô D16: D300 yêu cầu người dùng nhập", vbInformation, "Kutools cho Excel"

Hủy bỏ = Đúng

Cuối Nếu

Cuối Nếu
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
làm cách nào để bắt buộc cột Q7-Q500 nếu cột B7-B500 có các giá trị

Tôi không muốn lưu flle trước khi hoàn thành hồ sơ bắt buộc.

ví dụ.
Nếu tôi đặt bất kỳ giá trị / Văn bản nào trong cột D7 đến D500 thì Cột Q7 đến Q500 phải là Bắt buộc. (cửa sổ bật lên)
Nếu tôi không đặt bất kỳ giá trị / văn bản nào trong cột D7 đến D500 thì Q7 đến Q500 sẽ trống
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, hãy thử VBA ở trên và thay đổi tham chiếu theo nhu cầu của riêng bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn đã bao giờ bị phạt một câu trả lời cho điều này?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin lỗi, ý bạn là câu hỏi nào?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, cảm ơn bạn vì công thức này, nó hoạt động!

Tuy nhiên, bây giờ tôi đã tạo một mẫu trong đó bắt buộc phải điền vào một số ô. Nhưng sau khi tạo mẫu và nhập macro, tôi không thể đóng nó, vì tôi phải điền vào các ô :) Vì vậy, tôi không thể gửi mẫu ... (trong đó các ô bắt buộc vẫn phải trống)


Bạn có thể giúp tôi được không?

Cảm ơn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bất kỳ cập nhật về điều này?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi cũng quan tâm đến điều này, cảm ơn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi có vấn đề này như nhau. Có cách nào để tạo ô bắt buộc nhưng trống cho mẫu không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào mọi người, tôi tìm thấy giải pháp là tạm dừng macro trong màn hình alt + f11. Sau đó, nó có thể được lưu và sẽ khởi động lại khi mở lần tiếp theo. Để thực hiện việc này, hãy nhấn alt + f11, sau đó trong hàng biểu tượng phía trên cửa sổ (giống như biểu tượng đĩa tệp nhỏ màu xanh lam nằm ở đâu), bạn sẽ thấy các biểu tượng Phát, Tạm dừng, Dừng có màu xanh lục và xanh lam (phải nằm dưới Gỡ lỗi và Chạy tùy chọn). Nhấp vào nút tạm dừng ở giữa sau đó bạn có thể lưu.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào mọi người, tôi tìm thấy giải pháp là tạm dừng macro trong màn hình alt + f11. Sau đó, nó có thể được lưu và sẽ khởi động lại khi mở lần tiếp theo. Để thực hiện việc này, hãy nhấn alt + f11, sau đó trong hàng biểu tượng phía trên cửa sổ (giống như biểu tượng đĩa tệp nhỏ màu xanh lam nằm ở đâu), bạn sẽ thấy các biểu tượng Phát, Tạm dừng, Dừng có màu xanh lục và xanh lam (phải nằm dưới Gỡ lỗi và Chạy tùy chọn). Nhấp vào nút tạm dừng ở giữa sau đó bạn có thể lưu.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, hãy thử mã bên dưới, mã này sẽ buộc người dùng khác nhập giá trị trong phạm vi A7: M7 trước khi đóng sổ làm việc, nhưng hãy cho phép bạn đánh dấu sổ làm việc mà không cần điền.
Lưu ý: thay đổi hướng dương thành tên người dùng của riêng bạn. Để tìm và chỉnh sửa tên người dùng của bạn, hãy bấm Tệp> Tùy chọn> Chung> Tên Người dùng.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim rg As Range
Dim rgs As Range
Set rgs = Application.Range("A7:M7")
If Application.UserName = "sunflower" Then
Exit Sub
End If
    For Each rg In rgs
        If rg.Value = "" Then
        MsgBox "Range A7:M7 requires user input", vbInformation, "Kutools for Excel"
        Cancel = True
        Exit Sub
       End If
    Next
End Sub

Hy vọng mã này có thể giúp bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có cách nào để tôi có thể Bắt buộc ô f4 và F5 có dữ liệu trước khi đóng hoặc lưu không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chỉ cần thay đổi B1 thành F4 và F5 trong hộp văn bản để nhắc nhở người dùng.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi muốn tạo các hàng từ C2 đến C7 là bắt buộc và từ C13 đến C19 là bắt buộc?

Bất kỳ trợ giúp?

2 tập hợp phạm vi nằm ở đây nhưng dưới cùng một cột.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
tôi muốn làm cho các dấu tích bắt buộc trong trang tính
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có cách nào để bắt buộc nhập ô trước khi có thể sử dụng nút lệnh Active X không? Tôi có thiết lập nút lệnh để gửi biểu mẫu qua email nhưng tôi muốn đặt một số ô bắt buộc trước khi nút gửi email.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Craig, rất tiếc sự cố này không thể giải quyết được ở đây, có thể người khác có thể giúp bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Câu hỏi, mã đã hoạt động, nhưng làm thế nào có thể chọn phạm vi từ A7: M7 cho đến hàng cuối cùng?

và bất cứ khi nào người dùng lưu hoặc đóng sổ làm việc, trường bắt buộc phải được điền vào
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Lester, đây là mã chúng tôi đã sửa đổi có thể giúp bạn, hãy thay đổi dải ô A2: F2 thành dải ô mà bạn cần.
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


Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có thể tạo mã trong sổ làm việc mới được tạo không? tình huống là, tôi sẽ tạo một sổ làm việc mới và sổ làm việc được tạo đó phải có một trường bắt buộc được điền, người dùng không thể lưu trừ khi nó không được điền vào trường bắt buộc. Tôi đã tạo, đã tạo một sổ làm việc mới. vấn đề của tôi là, sổ làm việc mới được tạo không có mã.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Là 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 khoảng 2.000 regels. Het bestand wordt elke keer aangevuld dus het moet alleen gelden voor het aantal regels die nu zijn ingevuld.

Tôi muốn có một loạt chức năng erin zet werkt het niet zoals và 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 (Phạm vi ("B16: B300"))> 0 sau đó

If Application.WorksheetFunction.CountA (Range ("D16: D300")) <> Range ("D16: D300"). Đếm sau đó

MsgBox "Ô D16: D300 vereist gebruikersinvoer", vbInformation, "Kutools cho Excel"

Vòng khuyên = Waar

Cuối Nếu

Cuối Nếu

bà ơi
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi có thể gửi email cho bạn tài liệu để bạn có thể tư vấn tốt nhất cho tôi cách triển khai mã VBA để tệp không thể lưu nếu mỗi hàng không được điền đầy đủ? Của tôi là một chút khó khăn. Sẽ đánh giá cao sự giúp đỡ, đã cố gắng trong thời gian dài.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, đây là một đoạn mã, nó sẽ bật ra một hộp thoại để nhắc người dùng cần nhập ô nào và không thể đóng và lưu sổ làm việc cho đến khi tất cả các ô trong phạm vi a1:c3 đều chứa đầy nội dung.
Vui lòng sửa đổi tập lệnh trong mã:
1. thay đổi phạm vi khi bạn cần,
2. thay đổi tên người dùng "Kutools for Excel" trong mã thành tên người dùng của riêng bạn (vui lòng đảm bảo rằng người dùng khác không có cùng tên người dùng với bạn)

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
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin lỗi sếp,

Đối với ai đó sử dụng VBA lần đầu tiên, bạn có thể vui lòng cung cấp một số hướng dẫn về cách bắt đầu việc này không? Tôi muốn mỗi hàng có cùng một tính năng IE (cho đến khi một hàng hoàn thành tất cả thông tin trên hàng)
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, PM, bạn chỉ cần làm theo các bước trong bài viết này, sau đó thay mã bằng mã tôi cung cấp cho bạn, rồi lưu lại. Và khi bạn chia sẻ sổ làm việc với những người khác có tên người dùng khác với bạn, họ sẽ được yêu cầu điền vào mọi ô trong phạm vi (a1:c3, bạn có thể thay đổi nó trong mã) cho đến khi họ điền vào tất cả.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn rất nhiều, xin lỗi tôi đã không trả lời lại.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi sẽ làm điều này như thế nào nếu tôi muốn áp dụng cho toàn bộ sổ làm việc ngoại trừ một vài cột. Tôi có các cột A:AA và hiện có 4,527 hàng nhưng nhiều hàng hơn sẽ được thêm vào và tôi sẽ cần đảm bảo các hàng mới có cùng yêu cầu. Tôi cần tất cả các trường được yêu cầu ngoại trừ các trường bên dưới.

• Artemis (Cột A)
• Vị trí Truy cập Máy chủ (Cột H)
• Công cụ tạo (Synthesia) (Cột R)
• Cụm từ tìm kiếm (Cột U)
• Ghi chú (Cột V)
• eReview SME (cột Z)
• Tài năng giọng hát (cột AA)

Bạn có thể vui lòng hỗ trợ cách tôi có thể thiết lập tính năng này và bao gồm bất kỳ hàng nào trong tương lai được thêm vào không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi sẽ làm điều này như thế nào nếu tôi muốn áp dụng cho toàn bộ sổ làm việc ngoại trừ một vài cột. Tôi có các cột A:AA và hiện có 4,527 hàng nhưng nhiều hàng hơn sẽ được thêm vào và tôi sẽ cần đảm bảo các hàng mới có cùng yêu cầu. Tôi cần tất cả các trường được yêu cầu ngoại trừ các trường bên dưới.

• Artemis (Cột A)
• Vị trí Truy cập Máy chủ (Cột H)
• Công cụ tạo (Synthesia) (Cột R)
• Cụm từ tìm kiếm (Cột U)
• Ghi chú (Cột V)
• eReview SME (cột Z)
• Tài năng giọng hát (cột AA)

Bạn có thể vui lòng hỗ trợ cách tôi có thể thiết lập tính năng này và bao gồm bất kỳ hàng nào trong tương lai được thêm vào không?
Không có bình luận nào được đăng ở đây
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL