Hộp danh sách biểu mẫu Excel

Hộp danh sách biểu mẫu Excel

Tôi có một vấn đề mà tôi không hiểu và muốn được giải đáp.

Tôi có một hộp danh sách trên biểu mẫu và đã thiết lập mã để khi tôi nhấp vào một mục trong hộp danh sách, mã sẽ chạy. Trong mã đó, tôi có một dòng xóa hộp danh sách và một dòng đặt giá trị của hộp danh sách thành "" (một chuỗi null), sau đó là một dòng mã để tạo lại hộp danh sách.

Tuy nhiên, khi hộp danh sách được điền lại, một mục dòng luôn được tô sáng. Tôi nghĩ rằng bằng cách đặt giá trị của hộp danh sách thành "", không có mục nào trong hộp danh sách được tô sáng. Bất kể tôi đặt listbox.Value = " ở đâu, một mục dòng vẫn được tô sáng. Nếu tôi đặt mã trước, sau hoặc trong khi hộp danh sách được điền lại, một mục sẽ được tô sáng.

Vấn đề khó hiểu ở đây là: Khi tôi chạy thử đoạn mã trong chế độ gỡ lỗi, bất kể listbox.Value = "" được đặt ở đâu, NÓ VẪN HOẠT ĐỘNG. Không có mục nào trong listbox được tô sáng, nhưng khi tôi chạy mã bình thường, một mục luôn được tô sáng. Có ai có thể cho tôi biết chuyện gì đang xảy ra không?

Cảm ơn




Trả lời:

re: Vấn đề về Listbox

Bạn có thể không chỉ định lựa chọn nào trong Listbox bằng cách đặt Listbox.ListIndex thành -1.
.ListIndex bằng 0 là mục đầu tiên trong Listbox.

'---
NLtL

>

https://1drv.ms/u/s!Au8Lyt79SOuhiXoNjAh-_-zLi49O



Trả lời:
Xin chào, tôi là Elise, một cố vấn độc lập và tôi rất vui khi được giúp bạn giải quyết vấn đề.

Có lẽ nó không hoạt động vì không có mục trống nào trong danh sách mục của hộp danh sách. Tôi đề xuất sử dụng ListBox.ListIndex = -1

Thao tác này sẽ bỏ chọn các mục trong hộp danh sách, hiển thị dưới dạng lựa chọn trống.

Vui lòng cho tôi biết nếu bạn cần thêm sự hỗ trợ.

Trân trọng,
Elise

Trả lời:

Cảm ơn bạn đã trả lời, nhưng đó không phải là câu hỏi tôi muốn hỏi. Tôi đã thử listindex = -1 và các tùy chọn khác nhưng vẫn gặp vấn đề tương tự. Khi tôi chạy từng bước mã trong debug với listindex = -1, nó hoạt động hoàn hảo. Nhưng khi tôi chạy mã bình thường với listindex = -1 thì nó lại không hoạt động. Câu hỏi là tại sao nó hoạt động trong debug mà không hoạt động khi mã chạy bình thường.

Cảm ơn phản hồi của bạn



Trả lời:

Cảm ơn bạn đã trả lời, nhưng đó không phải là câu hỏi tôi muốn hỏi. Tôi đã thử listindex = -1 và các tùy chọn khác nhưng vẫn gặp vấn đề tương tự. Khi tôi chạy từng bước mã trong debug với listindex = -1, nó hoạt động hoàn hảo. Nhưng khi tôi chạy mã bình thường với listindex = -1 thì nó lại không hoạt động. Câu hỏi là tại sao nó hoạt động trong debug mà không hoạt động khi mã chạy bình thường.

Cảm ơn phản hồi của bạn



Trả lời:
Tôi hiểu, bạn có thể chia sẻ mã được không, vì rất khó để tư vấn nếu không có mã này?

Trân trọng,
Elise

Trả lời:

Tất nhiên rồi. Đây rồi. Về cơ bản, đây là một đoạn mã rất đơn giản. Nó là một sự kiện nhấp chuột vào hộp danh sách. Mục đích là nếu một số thao tác nhất định không được thực hiện trước khi người dùng nhấp vào hộp danh sách, chương trình con sẽ xóa lựa chọn đã nhấp và thoát, ví dụ: nếu poslevel = 0. Tôi sử dụng 2 cách khác nhau để xóa lựa chọn: .value = "" và Listindex = -1. Ngay cả khi tôi xóa hộp danh sách và chạy chương trình con để tạo lại danh sách, một mục vẫn được tô sáng.

Khi tôi chạy thử mã trong chế độ gỡ lỗi, nó HOẠT ĐỘNG hoàn hảo. Nhưng khi mã chạy bình thường, lựa chọn không được xóa. Tôi rất mong nhận được ý kiến ​​đóng góp của bạn.

Cảm ơn

Riêng tư sub lbxPicViewer_Click()

Nếu poslevel = 0 thì

lbxPicViewer.Clear

Nhận hình ảnh có sẵn

lbxPicViewer.Giá trị = ""

lbxPicViewer.ListIndex = -1

Thoát Sub

Kết thúc nếu

filenam = ActiveWorkbook.Name

piclist = Phạm vi("Plants.XLSM!piclist")

temp3 = lbxPicViewer.Column(0)

temp9 = piclist & lbxPicViewer.Column(0)

imgSelectedImage.Picture = LoadPicture(temp9)

cmdMovePicToPlant.Visible = Đúng

Kết thúc phụ đề



Trả lời:
Tôi nghĩ vấn đề nằm ở việc sửa đổi hộp danh sách từ cùng một sự kiện hộp danh sách. Vì bạn chọn hộp danh sách rồi xóa lựa chọn khi nhấp vào nó, nên có thể có xung đột ở đâu đó.

Bạn có thể giải thích thêm tại sao bạn lại xóa lựa chọn khi ai đó nhấp vào không? Tôi hiểu poslevel phải bằng 0, nhưng tôi cũng không hiểu rõ ý nghĩa của nó.

Trân trọng,
Elise

Trả lời:

Bạn vẫn chưa hiểu vấn đề. Khi tôi duyệt qua mã trong debug, nó vẫn hoạt động mặc dù tôi đang xóa và điền lại hộp danh sách trong mã sự kiện. Khi mã được duyệt qua trong debug xong, lựa chọn sẽ biến mất. Chấm hết. Nhưng không phải khi mã chạy bình thường. Tôi không nhấp vào bất kỳ mục nào sau cú nhấp chuột ban đầu để tạo sự kiện nhấp chuột.

Vậy nên việc chạy đoạn mã này trong sự kiện click của hộp danh sách không liên quan gì đến vấn đề này vì nó hoạt động hoàn hảo ở chế độ bước gỡ lỗi. Rõ ràng là có xung đột ở đâu đó vì nó hoạt động theo một hướng nhưng không hoạt động theo hướng kia, nhưng xung đột ở đâu? Đó là câu hỏi tôi đang hỏi.



Trả lời:
Tôi quên thêm. Nếu có vấn đề khi sửa đổi hộp danh sách trong sự kiện hộp danh sách, nó sẽ hiển thị trong bước gỡ lỗi. Nó không

Trả lời:
Tôi hiểu, nhưng tôi nghĩ vấn đề nằm ở chỗ chạy trong chế độ gỡ lỗi so với chạy trực tiếp. Khi bạn chạy trong chế độ gỡ lỗi, các lệnh sẽ được xử lý từng bước. Nhưng khi chạy trực tiếp, tôi nghĩ sự kiện đang bị ghi đè bởi thao tác nhấp chuột của người dùng vào điều khiển.

Trân trọng,
Elise

Comments

Popular posts from this blog

Excel 2016 - mở tất cả các tệp trong MỘT phiên bản

Điều tôi muốn làm trong Excel 2010 là tạo một nút tùy chỉnh và gắn nó vào thanh công cụ Truy nhập nhanh và chạy một macro cụ thể.

Mở tài liệu Excel và Word từ Outlook Lỗi - Không đủ bộ nhớ