Nguyễn T. M. Hường
Thành viên mới

- Tham gia
- 23/7/19
- Bài viết
- 9
- Được thích
- 2
- Giới tính
- Nữ
Bạn gỡ mật khẩu ra mọi người mới xem được form chứ!Chào mọi người,
Mọi người xem giúp mình đoạn code trong form frm_THEMSP. Khi mình thực hiện click THÊM luôn thông báo lỗi Method 'Value' of object 'Range' failed.
Xin lỗi bạn, mình quên mất. Mật khẩu là P@ssw0rdBạn gỡ mật khẩu ra mọi người mới xem được form chứ!
Mình quên mất, bạn nhập pass là P@ssw0rd giúp mình nhen. Để mình up lại file không có mật khẩuKhông xem được file, làm sao giúp?
Hi, chào bạn. Có gì xem code giúp mình với nhenỞ bên ni nì
![]()
LỖI TỰ MỞ USERFORM KHI CLICK DOUBLE CHUỘT VÀO 1 Ô TRONG SHEET EXCEL
Chào mọi người, Mình là người mới, đang học VBA, mình có thử 1 đoạn code để tự mở userform khi click double chuột. Mọi người xem giúp mình lỗi code ở đâu mà khi mình click đều chỉ hiện ra thông tin của một sản phẩm duy nhất. Mọi người giúp giùm mình. Cảm ơn mọi người nhiềuwww.giaiphapexcel.com
dongcuoi = sanpham.Offset(sanpham.Rows.Count, 0).End(xlUp).Row - 7
MsgBox DongCuoi
Chào bạn, nó ra đúng ý đồ của mình. Giờ mình click THÊM thì không báo lỗi, mà có lúc tự nhiên lại báo lỗi. Mình không biết code bị sai lỗi gì mà lúc được lúc không. Bạn có ý kiến gì giúp mình với. Cám ơn bạn nhiềuSau từng câu lệnh bạn có kiểm tra xem nó thực thi & cho bạn kết quả ra sao không?
Mình lấy ví dụ:
Sau câu lệnh
Bạn thêm dòng lệnhMã:dongcuoi = sanpham.Offset(sanpham.Rows.Count, 0).End(xlUp).Row - 7
Xem nó trả lới bạn như thế nào & có đúng ý đồ của bạn hay không?PHP:MsgBox DongCuoi
Private Sub btn_them_Click()
On Error GoTo LoiCT
1 DongCuoi = SanPham.Offset(SanPham.Rows.Count, 0).End(xlUp).Row - 7
DongThemdl = DongCuoi + 1
3 SanPham.Cells(DongThemdl, 1).Value = Me.txt_makho
SanPham.Cells(DongThemdl, 2).Value = Me.txt_matk
5 SanPham.Cells(DongThemdl, 3).Value = Me.txt_mabh
SanPham.Cells(DongThemdl, 4).Value = Me.cbx_phanloai.Value
7 SanPham.Cells(DongThemdl, 5).Value = Me.cbx_xuatxu.Value
SanPham.Cells(DongThemdl, 6).Value = Me.txt_ktvien
9 SanPham.Cells(DongThemdl, 7).Value = Me.txt_ktvi
SanPham.Cells(DongThemdl, 8).Value = Format(Me.txt_m2thung, "#,##0")
11 SanPham.Cells(DongThemdl, 11).Value = Me.cbx_donvitinh.Value
txt_makho = "": txt_matk = ""
13 txt_mabh = "": cbx_phanloai = ""
cbx_xuatxu = "": txt_ktvien = ""
15 txt_ktvi = "": txt_m2thung = ""
txt_makho.SetFocus
Err_: Exit Sub
LoiCT:
MsgBox Error, , "Lôi Dòng: " & Erl
Resume Err_
End Sub
Cám ơn bạn nhiều.Bạn đánh số các dòng lệnh
& thực hiện macro xem khi có lỗi thì nó báo dòng lệnh nào đang lỗi & bạn ghi lại hàm mà lỗi trả về:
PHP:Private Sub btn_them_Click() On Error GoTo LoiCT 1 DongCuoi = SanPham.Offset(SanPham.Rows.Count, 0).End(xlUp).Row - 7 DongThemdl = DongCuoi + 1 3 SanPham.Cells(DongThemdl, 1).Value = Me.txt_makho SanPham.Cells(DongThemdl, 2).Value = Me.txt_matk 5 SanPham.Cells(DongThemdl, 3).Value = Me.txt_mabh SanPham.Cells(DongThemdl, 4).Value = Me.cbx_phanloai.Value 7 SanPham.Cells(DongThemdl, 5).Value = Me.cbx_xuatxu.Value SanPham.Cells(DongThemdl, 6).Value = Me.txt_ktvien 9 SanPham.Cells(DongThemdl, 7).Value = Me.txt_ktvi SanPham.Cells(DongThemdl, 8).Value = Format(Me.txt_m2thung, "#,##0") 11 SanPham.Cells(DongThemdl, 11).Value = Me.cbx_donvitinh.Value txt_makho = "": txt_matk = "" 13 txt_mabh = "": cbx_phanloai = "" cbx_xuatxu = "": txt_ktvien = "" 15 txt_ktvi = "": txt_m2thung = "" txt_makho.SetFocus Err_: Exit Sub LoiCT: MsgBox Error, , "Lôi Dòng: " & Erl Resume Err_ End Sub
& mình tin là macro chưa thực hiện đúng ý đồ của bạn;
Hiện dòng 8 đang có dữ liệu; Bạn nhập mới dữ liệu sẽ phải nhập vô dòng 9
Nhưng hiện tại dòng sẽ nhập liệu là dong2
Public SanPham As Range
Hi hi, câu lệnh xác định dòng cuối do hồi học biết có mỗi mấy code kiểu vậy nên dùng nó miết.Nó báo lỗi dòng 1 thì có nghĩa dòng 1 hay dòng dưới liền kề với nó bị lỗi
Mà đáng để ý sẽ là dòng 1
Ta thử dịch dòng lênh lày sang tiếng Việt:
DongCuoi = SanPham.Offset(SanPham.Rows.Count, 0).End(xlUp).Row - 7
Trong file của bạn Vùng mà bạn gán tên 'SanPham' là B8:AJ8 (vùng chỉ chứa trong 1 dòng )
Thêm nữa, trong phần khai báo biến toàn cục, bạn có khai báo
Như vậy xài trùng tên này đã là không nênMã:Public SanPham As Range
Thứ nữa
Trước dòng 1 bạn thử thêm dòng lệnh này xem sao:
MsgBox SanPham.Address
xem nó báo thông tin gì cho bạn
Để chắc cú bạn nên làm vầy:
Set SanPham = Range("B8:AJ8")
Mà sao bạn không xài câu lệnh vầy để xác định dòng cuối nhì:
DongCuoi= [B65500].End(xlUp).row + 1
Vừa đơn gian như đang zởn thôi!