Đỗ Anh Ngọc
Đỗ Anh Ngọc
Thảo luận 8 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 276 lượt xem

làm cách nào để chuyển đổi giá trị cho 1 combobox ạ?vd clng(comboboxvalue)

chào thầy, làm cách nào để chuyển đổi giá trị cho 1 combobox ạ?
vd: clng(combobox.value) em làm thế này thì bị lỗi
em cần chuyển đổi để thực hiện hàm logic với date ạ
Thảo luận 8 câu trả lời
Lượt xem 276 lượt xem
Vỗ tay vỗ tay
Đỗ Anh Ngọc 22:05 - May 19, 2020
bạn xem lại bài 6 trong chương 12 nhé.
Vỗ tay vỗ tay
Đỗ Anh Ngọc 22:05 - May 19, 2020
Em đã xem lại bài giảng nhưng không thấy phần cần tìm ở đâu ạ, mong thầy hỗ trợ
Vỗ tay vỗ tay
Đỗ Anh Ngọc 20:05 - May 20, 2020
Sự kiện Textbox_Change (hoặc Combobox_Change) giúp thay đổi cách hiển thị của dữ liệu sau khi bạn nhập vào textbox.
Mình không rõ ý của bạn là gì. Nếu như muốn đưa dữ liệu từ textbox vào 1 ô trong Sheet dưới dạng dữ liệu Date thì bạn làm như sau:
Sheet1.Range("A1").Value = Clng(Combobox1.Value)
Tại ô A1 bạn format cell về dạng dd/mm/yyyy là được.
Nếu bạn gặp lỗi thì vui lòng nêu rõ code của bạn viết để mình kiểm tra cho.
Vỗ tay vỗ tay
Đỗ Anh Ngọc 20:05 - May 20, 2020
Dạ không ạ, em muốn so sánh với giá trị trong 1 ô, nếu giá trị NGÀY trong combobox = giá trị .range("A1") thì...
E để 2 cái value = nhau theo thông thường thì lệnh ko đúng
VD: cb_ngay.value = sheet1.range("A1").value
Làm như này thì kết quả cho ra không bằng nhau, còn thêm vào clng(cb_ngay.value) thì bị lỗi "mismatch"
Vỗ tay vỗ tay
Đỗ Anh Ngọc 00:05 - May 21, 2020
Bạn có thể nói rõ tình huống (hoặc gửi kèm file) được không, vì ở đây mình nghĩ vấn đề nằm ở việc so sánh giá trị trong combobox với giá trị 1 ô nhưng lại là so sánh giá trị ngày.
Giá trị ngày là 1 giá trị nhạy cảm, dễ nhầm lẫn nhất trong các loại giá trị. Khi làm trên VBA hạn chế so sánh theo giá trị ngày. Thường chỉ so ngày trong 2 ô với nhau, hoặc trên cùng đối tượng textbox với nhau.
Cả việc bạn đặt cấu trúc so sánh tại ví trí nào trong macro cũng có thể gây ra lỗi.
Vậy nên cần xem cụ thể toàn bộ nội dung bạn đang làm mới đánh giá được lỗi do đâu.
Vỗ tay vỗ tay
Đỗ Anh Ngọc 00:05 - May 21, 2020
Tình huống phân công trực theo ngày, mỗi ngày 3 ca làm việc, nhập liệu bằng useform, dữ liệu ngày và tên từ combobox được lấy từ sheet có sẵn, yêu cầu khi bấm chọn ngày, ca làm, tên, dữ liệu sẽ được tự động điền vào ô trống tương ứng
Sau khi tìm hiểu trên mạng em đã thêm vào công thức:
Clng(Val(cb_ngay.value))=Clng(Val(sheet1.range("A1").value)) thì thành công nhưng vẫn chưa hiểu nguyên lí thê nào
Vỗ tay vỗ tay
Đỗ Anh Ngọc 00:05 - May 21, 2020
Đỗ Anh Ngọc 20:05 - May 21, 2020
Bản chất ở đây là kiểm tra dữ liệu có giống nhau không.
Giống nhau gồm 2 vấn đề:
- Hình thức thể hiện: cái mà bạn nhìn thấy bằng mắt thường
- Kiểu dữ liệu: là cái mà excel, vba hiểu và hoạt động trên nguyên tắc này.
Khi nhập trên userform, dữ liệu thường ở dạng text.
Khi nhập ngày trên excel, dữ liệu là dạng Number.
Do đó không có sự tương đồng giữa 2 kiểu dữ liệu này, dù có thể nhìn giống nhau về cách viết. Khi dùng lệnh chuyển đổi Clng(...) thì sẽ đưa 2 dữ liệu này về cùng 1 kiểu là Number nên so sánh với nhau được.
Vỗ tay vỗ tay
Câu hỏi liên quan
@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội