- Tham gia
- 5/6/08
- Bài viết
- 30,703
- Được thích
- 53,952
Vấn đề về VBA trong Excel
mình mới xem và tập tành VBA khoảng 1 tuần rồi
có vấn đề như sau cần tham kiến :
ví dụ mình có 1 form nhập dữ liệu tương tự như sau :
frmnhaplieu
các control :
txtnhapdulieu
txtdieukiennhap
cmdnhaplieu
trong bảng sheet2 mình gõ ô A1 = counta(a5:a100)
để đếm ô chứa dữ liệu
ở sheet1 tạo 1 command ' Nhap Lieu '
khi bấm thì mở lên form ' Nhap Lieu '
form này cho phép nhập liệu lên ô A5,B5 và tự động xuống dòng ở các lần tiếp theo, yêu cầu dữ liệu phải nhập vào A5 và B5 cùng lúc
mình viết trình :
cái này cho mình nhập vào ô a5 và b5 tại sheet2 nếu 2 vùng dữ liệu dc thỏa mãn sau đó xóa dữ liệu trong 2 ô text
tuy nhiên, 1 trong 2 điều kiện ko thỏa mãn thì nổi thông báo msgbox
nhưng sau khi nổi thông báo vẫn tiến hành cho nhập dữ liệu trắng vào
cụ thể
lần 1 : thỏa mãn a5 = x b5 = x
lần 2 : ko thỏa mãn a6 = trống b6= trống
lần 3 thỏa mãn a7 = y b7 = y
ô a6 và b6 trống
mình muốn sau khi nổi thông báo sẽ kết thúc lệnh sau khi kết thúc msgbox
và mình dùng cách sau :
nghĩa là nếu như ô vừa nhận dữ liệu mà dữ liệu đó là trắng thì sẽ xóa dữ liệu đó
đáp ứng dc yêu cầu cho dữ liệu xuyên suốt
tuy nhiên cách này ko hay
cái mình muốn là mở rộng thêm :
-> làm cách nào để trong 1 tập hợp các lệnh ngang hàng nhau, khi muốn dừng tại đâu thì các lệnh theo thứ tự sau nó sẽ ko dc thực thi !
mình dùng End , nhưng End sẽ đóng luôn form ! ko dc
mình chưa từng học qua excel càng ko biết VBA, cũng ko phải dân kế toán
tuy nhiên tự mài mò nên cũng xài dc excel
gần đây thấy VBA hay hay nên chơi tiếp,
tìm tài liệu thì ít, tham khảo mấy trang nước ngoài cùng với việc tự tư duy và xem code bằng record macro nên cơ bản đã nắm dc cấu trúc code
chư vị nào vui lòng thì cho tham kiến !
xin cảm ơn !
mình mới xem và tập tành VBA khoảng 1 tuần rồi
có vấn đề như sau cần tham kiến :
ví dụ mình có 1 form nhập dữ liệu tương tự như sau :
frmnhaplieu
các control :
txtnhapdulieu
txtdieukiennhap
cmdnhaplieu
trong bảng sheet2 mình gõ ô A1 = counta(a5:a100)
để đếm ô chứa dữ liệu
ở sheet1 tạo 1 command ' Nhap Lieu '
Mã:
private sub nhaplieu_click()
frmnhaplieu.show
end sub
khi bấm thì mở lên form ' Nhap Lieu '
form này cho phép nhập liệu lên ô A5,B5 và tự động xuống dòng ở các lần tiếp theo, yêu cầu dữ liệu phải nhập vào A5 và B5 cùng lúc
mình viết trình :
PHP:
private sub cmdnhaplieu_click()
dim sodem as string
sheets("sheet2").select
sodem = activesheet.range("a1").value
range("a1").select
if txtnhapdulieu = "" or txtdieukiennhap = "" then
msgbox"kiem tra cac du lieu nhap",vbokonly,"Thong bao"
else
activecell.offset(sodem+4,0).value = txtnhapdulieu
activecell.offset(sodem+4,1).value = txtdieukiennhap
end if
txtnhapdulieu.text=""
txtdieukiennhap.text=""
end sub
cái này cho mình nhập vào ô a5 và b5 tại sheet2 nếu 2 vùng dữ liệu dc thỏa mãn sau đó xóa dữ liệu trong 2 ô text
tuy nhiên, 1 trong 2 điều kiện ko thỏa mãn thì nổi thông báo msgbox
nhưng sau khi nổi thông báo vẫn tiến hành cho nhập dữ liệu trắng vào
cụ thể
lần 1 : thỏa mãn a5 = x b5 = x
lần 2 : ko thỏa mãn a6 = trống b6= trống
lần 3 thỏa mãn a7 = y b7 = y
ô a6 và b6 trống
mình muốn sau khi nổi thông báo sẽ kết thúc lệnh sau khi kết thúc msgbox
và mình dùng cách sau :
Mã:
if activecell.offset(sodem+4,0).value="" and activecell.offset(sodem+4,1).value="" then
activecell.offset(sodem+4,0).select
selection.clearcontents
activecell.offset(sodem+4,1).select
selection.clearcontents
end if
nghĩa là nếu như ô vừa nhận dữ liệu mà dữ liệu đó là trắng thì sẽ xóa dữ liệu đó
đáp ứng dc yêu cầu cho dữ liệu xuyên suốt
tuy nhiên cách này ko hay
cái mình muốn là mở rộng thêm :
-> làm cách nào để trong 1 tập hợp các lệnh ngang hàng nhau, khi muốn dừng tại đâu thì các lệnh theo thứ tự sau nó sẽ ko dc thực thi !
mình dùng End , nhưng End sẽ đóng luôn form ! ko dc
mình chưa từng học qua excel càng ko biết VBA, cũng ko phải dân kế toán
tuy nhiên tự mài mò nên cũng xài dc excel
gần đây thấy VBA hay hay nên chơi tiếp,
tìm tài liệu thì ít, tham khảo mấy trang nước ngoài cùng với việc tự tư duy và xem code bằng record macro nên cơ bản đã nắm dc cấu trúc code
chư vị nào vui lòng thì cho tham kiến !
xin cảm ơn !
From NDU:
Ai có dầu gió cho xin tí ---> Chóng mặt quá
Chỉnh sửa lần cuối bởi điều hành viên: