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

Làm thế nào để hiển thị mục đầu tiên trong danh sách thả xuống thay vì để trống?

doc danh sách thả xuống mặc định thành đầu 1

Danh sách thả xuống trong một trang tính có thể giúp chúng ta nhập dữ liệu dễ dàng hơn, chúng ta chỉ cần chọn các mục mà không cần gõ từng mục một. Tuy nhiên, đôi khi, khi bạn nhấp vào danh sách thả xuống, nó sẽ chuyển đến các mục trống trước tiên thay vì mục dữ liệu đầu tiên như ảnh chụp màn hình sau được hiển thị, điều này có thể do xóa dữ liệu nguồn ở cuối danh sách. Có thể khó chịu khi bạn phải cuộn lại đầu danh sách dài cho mỗi ô xác thực dữ liệu trống. Bài viết này, tôi sẽ nói về cách luôn hiển thị mục đầu tiên trong danh sách thả xuống.

Hiển thị mục đầu tiên trong danh sách thả xuống thay vì để trống với chức năng Xác thực dữ liệu

Tự động hiển thị mục đầu tiên trong danh sách thả xuống thay vì để trống với mã VBA


mũi tên màu xanh bong bóng bên phải Hiển thị mục đầu tiên trong danh sách thả xuống thay vì để trống với chức năng Xác thực dữ liệu

Trên thực tế, để đạt được công việc này, bạn chỉ cần áp dụng một công thức cụ thể khi tạo danh sách thả xuống, vui lòng làm như sau:

1. Chọn các ô mà bạn muốn chèn danh sách thả xuống và nhấp vào Ngày > Xác nhận dữ liệu > Xác nhận dữ liệu, xem ảnh chụp màn hình:

doc danh sách thả xuống mặc định thành đầu 2

2. Trong cửa sổ bật ra Xác nhận dữ liệu hộp thoại, bên dưới Cài đặt tab, chọn Danh sách từ Cho phép và sau đó nhập công thức này: = OFFSET (Trang tính 3! $ A $ 1,0,0, COUNTA (Trang tính 3! $ A: $ A) -1,1) vào nguồn hộp văn bản, xem ảnh chụp màn hình:

Chú thích: Trong công thức này, Sheet3 là trang tính có chứa danh sách dữ liệu nguồn và A1 là giá trị ô đầu tiên trong danh sách.

doc danh sách thả xuống mặc định thành đầu 3

3. Sau đó nhấn vào OK , bây giờ, khi bạn nhấp vào các ô danh sách thả xuống, mục dữ liệu đầu tiên luôn hiển thị ở trên cùng cho dù có các giá trị ô bị xóa ở cuối dữ liệu nguồn hay không, hãy xem ảnh chụp màn hình:

doc danh sách thả xuống mặc định thành đầu 4


mũi tên màu xanh bong bóng bên phải Tự động hiển thị mục đầu tiên trong danh sách thả xuống thay vì để trống với mã VBA

Ở đây, tôi cũng có thể giới thiệu mã VBA có thể giúp bạn tự động hiển thị mục đầu tiên trong danh sách thả xuống khi bạn nhấp vào ô xác thực dữ liệu.

1. Sau khi chèn danh sách thả xuống, hãy chọn tab trang tính chứa danh sách thả xuống và nhấp chuột phải để chọn Mã Chế độ xem từ menu ngữ cảnh để chuyển đến Microsoft Visual Basic cho các ứng dụng cửa sổ, sau đó sao chép và dán mã sau vào Mô-đun:

Mã VBA: Tự động hiển thị mục dữ liệu đầu tiên trong danh sách thả xuống:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20160725
    Dim xFormula As String
    On Error GoTo Out:
    xFormula = Target.Cells(1).Validation.Formula1
    If Left(xFormula, 1) = "=" Then
        Target.Cells(1) = Range(Mid(xFormula, 1)).Cells(1).Value
    End If
Out:
End Sub

doc danh sách thả xuống mặc định thành đầu 5

2. Sau đó, lưu và đóng cửa sổ mã, và bây giờ, khi bạn nhấp vào ô danh sách thả xuống, mục dữ liệu đầu tiên sẽ được hiển thị cùng một lúc.


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 (9)
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
Sau khi cuộn xuống, chọn ô dữ liệu số không theo chuỗi, chỉ dữ liệu ô đầu tiên đến chọn 1,2 ô khác nhau và cuộn xuống giá trị không đến 1,2,3,4,5 ....... chỉ có giá trị ô đầu tiên sắp tới 1,1,1,1,….
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
chọn ô mà bạn đã đặt listitem
phạm vi cho listitem là "Opleiding"
trong mã VBA của bạn:

select.Value = Range ("opleiding"). Các ô (2, 1)

kết quả là mục được chọn của listItem là mục thứ hai trong phạm vi "Opleiding"
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 tôi có thể đặt danh sách xác thực dữ liệu để nếu giá trị thả xuống trong ô bị xóa, ô sẽ tự động hiển thị giá trị mặc định (tức là "-Select-")?

Ví dụ: tôi có một trang tính với nhiều danh sách thả xuống mà tôi muốn hiển thị giá trị mặc định là "-Select-" khi trang tính được mở. Người dùng sẽ chọn các giá trị từ danh sách sẽ ảnh hưởng đến kết quả của các phép tính trên toàn bộ bảng tính. Người dùng có thể vô tình "xóa" nội dung ô. Nếu điều này xảy ra, thay vì ô trở nên trống, tôi muốn ô hiển thị giá trị mặc định là "-Select-". Trường hợp này xảy ra ở nhiều vị trí ngẫu nhiên trong toàn bộ bảng tính, không chỉ ở một nơi được bản địa hóa.

Tôi đã có thể nghĩ ra mã VBA sau cho đến nay, nhưng tôi chỉ tìm ra cách áp dụng khái niệm trên một phạm vi, thay vì chỉ các ô chứa danh sách thả xuống. Vấn đề với những gì tôi đã mã hóa cho đến nay là mọi ô trống trong phạm vi đều kết thúc bằng "-Select-" trong đó.

Tùy chọn rõ ràng

Private Sub Worksheet_Change (ByVal Target As Range)
Dim cel As Range
'If Target.Cells.Count> 1 Then Exit Sub
Nếu Không Giao nhau (Mục tiêu, Phạm vi ("f2: p17")) thì Không có gì
Đối với mỗi ô trong phạm vi ("f2: p17")
Application.EnableEvents = Sai
If IsEmpty (cel.Value) Then cel.Value = "-Select-"
Cel tiếp theo
Cuối Nếu
Ứng dụng.EnableEvents = True
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
Hello!

Làm cách nào tôi có thể đặt danh sách xác thực dữ liệu để nếu giá trị thả xuống trong ô bị xóa, ô sẽ tự động hiển thị giá trị mặc định (tức là "-Select-")?

Ví dụ: tôi có một trang tính với nhiều danh sách thả xuống mà tôi muốn hiển thị giá trị mặc định là "-Select-" khi trang tính được mở. Người dùng sẽ chọn các giá trị từ danh sách sẽ ảnh hưởng đến kết quả của các phép tính trên toàn bộ bảng tính. Người dùng có thể vô tình "xóa" nội dung ô của danh sách. Nếu điều này xảy ra, thay vì ô trở nên trống, tôi muốn ô hiển thị giá trị mặc định là "-Select-". Trường hợp này xảy ra ở nhiều vị trí ngẫu nhiên trong toàn bộ bảng tính, không chỉ ở một nơi được bản địa hóa.

Tôi đã có thể tìm thấy mã VBA sau cho đến nay, nhưng nó chỉ áp dụng khái niệm trên một phạm vi, thay vì chỉ các ô riêng lẻ chứa danh sách thả xuống. Vấn đề với những gì tôi đã mã hóa cho đến nay là mọi ô trống trong phạm vi đều kết thúc bằng "-Select-" trong đó. Một số danh sách nằm trong phạm vi, nhưng một số cũng nằm rải rác khắp trang tính. Vấn đề tôi đang gặp phải với mã hiện tại của mình là mọi ô trống trong phạm vi đều kết thúc bằng "-Select-" trong đó. Tôi đang cố gắng áp dụng điều này trên toàn bộ trang tính cho CHỈ các ô là danh sách thả xuống.

Điều tôi đang cố gắng hoàn thành có khả thi không?

Tệp ví dụ có thể được tìm thấy ở đây:
https://drive.google.com/file/d/1VoO8VgFs3IJ0ALwqfk0i8gt69UE4vEKW/view?usp=sharing

Mã ví dụ:

Tùy chọn rõ ràng

Private Sub Worksheet_Change (ByVal Target As Range)
Dim cel As Range
Tắt 'If Target.Cells.Count> 1 Then Exit Sub' cho phép nhiều ô được chọn và xóa cùng một lúc
Nếu Không Giao nhau (Mục tiêu, Phạm vi ("f2: p17")) thì Không có gì
Đối với mỗi ô trong phạm vi ("f2: p17")
Application.EnableEvents = Sai
If IsEmpty (cel.Value) Then cel.Value = "-Select-"
Cel tiếp theo
Cuối Nếu
Ứng dụng.EnableEvents = True
End Sub


Cảm ơn trước!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Không hiệu quả với tôi. Tôi tiếp tục nhận được thông báo lỗi, "Có vấn đề với công thức này. Bạn không thể nhập công thức? Khi ký tự đầu tiên là dấu bằng (+) hoặc dấu trừ (-), Exel cho rằng đó là một công thức ..." Để giải quyết vấn đề này, trước tiên hãy nhập dấu nháy đơn (') ... "
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Một lần nữa, bạn tiết kiệm được ngày! Thanks!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tốt hơn nhưng không khá. Sử dụng phương thức = OFFSET (Sheet3! $ A $ 1,0,0, COUNTA (Sheet3! $ A: $ A) -1,1) sẽ loại bỏ các khoảng trống nhưng vẫn bắt đầu bạn ở cuối danh sách rất dài. Tôi muốn nó bắt đầu ở đầu danh sách.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đối với mã VDA, làm cách nào để chỉ một phạm vi ô nhất định hiển thị mục đầu tiên trong danh sách thả xuống? Cảm ơn bạn trước.
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, Akrupa, Để giải quyết vấn đề của bạn, có thể mã VBA sau có thể giúp bạn:

Private Sub Worksheet_SelectionChange (ByVal Target As Range)
'Cập nhật bởi Extendoffice 20211206
Dim xFormula dưới dạng chuỗi
Dim xRg theo phạm vi
Làm mờ xStr dưới dạng chuỗi
Dim xIndex dưới dạng số nguyên
xIndex = 2 'Ở đây cho biết số ô của dữ liệu gốc, ví dụ, dữ liệu gốc là A1: A10, để hiển thị giá trị ô A2, vui lòng viết 2 ở đây.
Về lỗi GoTo Out:
xFormula = Target.Cells (1) .Validation.Formula1
If Left (xFormula, 1) = "=" Then
If Target.Value <> "" Sau đó thoát Sub
xStr = Giữa (xFormula, 2)
Đặt xRg = Application.Range (xStr)
Target.Cells (1) = xRg.Cells (xIndex) .Value
Cuối Nếu
Ngoài:
End Sub
Hãy cố gắng, hy vọng nó có thể giúp bạn!
Không có bình luận nào được đăng ở đây

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