Hộp danh sách nhiều lựa chọn trong Excel để điền vào một ô
Chào tất cả
Tôi có một biểu mẫu người dùng để nhập dữ liệu, nó được tạo thành từ nhiều hộp danh sách và một vài hộp văn bản.
Tôi có một hộp danh sách được thiết lập cho nhiều lựa chọn và để các mục đã chọn được trả về một ô trong bảng dữ liệu
đây là mã của tôi cho đến nay vì tất cả các hộp danh sách khác đều là các lựa chọn đơn lẻ. Tôi đang gặp vấn đề với hộp danh sách nhiều lựa chọn
cmdsave_Click() phụ riêng tư
Dòng điện mờ As Long
Dim Lastrow Càng Dài
Với Bảng tính ("tblData")
Lastrow = .Range("A" & Rows.Count).End(xlUp).Row
.Cells(Lastrow + 1, "A").Value = lstPris
.Cells(Lastrow + 1, "B").Value = txtdate
.Cells(Lastrow + 1, "D").Value = lstquart
.Cells(Lastrow + 1, "F").Value = lstanswer
.Cells(Lastrow + 1, "H").Value = lstcomp
.Cells(Lastrow + 1, "I").Value = lstresp đây là hộp danh sách nhiều lựa chọn để điền vào cột i
.Cells(Lastrow + 1, "J").Value = txtfree
Kết thúc bằng
Kết thúc phụ
dưới dạng đơn lẻ thì nó hoạt động tốt nhưng với tư cách là nhiều lựa chọn, tôi không thể tìm thấy mã nào có thể hỗ trợ
mọi sự trợ giúp sẽ được đánh giá cao
Cảm ơn
***Bài đăng được người điều hành chuyển đến danh mục diễn đàn thích hợp.***
Trả lời:
Tôi đã giả định rằng bạn cần có dấu phân cách giữa mỗi lựa chọn nên ví dụ của tôi sử dụng dấu phẩy và dấu cách.
Vì dấu phẩy và dấu cách được thêm vào mỗi lựa chọn nên sẽ có dấu phẩy và dấu cách ở cuối chuỗi nối cuối cùng. Do đó mã sẽ loại bỏ dấu phân cách cuối cùng. Nếu không sử dụng dấu phẩy và dấu cách thì hãy chỉnh sửa theo yêu cầu của bạn ở nơi nó được nối và nếu cần, hãy chỉnh sửa dòng xóa dấu phẩy và dấu cách cuối cùng với số ký tự chính xác cần xóa.
Mã này có thể được viết để gọi một phụ khác nhằm tạo chuỗi từ các lựa chọn nhưng để đơn giản, tôi chỉ đưa nó vào cùng với mã khác của bạn.
cmdSave_Click() phụ riêng tư
Dòng điện mờ As Long
Dim i As Long
Dim strTemp dưới dạng chuỗi
Dim Lastrow Càng Dài
Với Bảng tính ("tblData")
Lastrow = .Range("A" & Rows.Count).End(xlUp).Row
.Cells(Lastrow + 1, "A").Value = lstPris
.Cells(Lastrow + 1, "B").Value = txtdate
.Cells(Lastrow + 1, "D").Value = lstquart
.Cells(Lastrow + 1, "F").Value = lstanswer
.Cells(Lastrow + 1, "H").Value = lstcomp
Đối với i = 0 Đến lstresp.ListCount - 1
Nếu lstresp.Selected(i) thì 'Nếu được chọn là Đúng
strTemp = strTemp & lstresp.List(i) & "," 'Chỉnh sửa ", " thành các dấu phân cách bắt buộc
Kết thúc nếu
Tiếp theo tôi
Nếu Len(strTemp) > 2 Thì 'Biến sẽ luôn lớn hơn 2 nếu có bất kỳ lựa chọn nào trong hộp danh sách
strTemp = Left(strTemp, Len(strTemp) - 2) 'xóa dấu phẩy và dấu cách cuối cùng (Chỉnh sửa 2 thành độ dài của dấu phân cách)
Kết thúc nếu
.Cells(Lastrow + 1, "I").Value = strTemp
.Cells(Lastrow + 1, "J").Value = txtfree
Kết thúc bằng
Kết thúc phụ
Comments
Post a Comment