Nhờ cao thủ chỉ giúp đoạn code sau

Liên hệ QC

huangli_1984

Thành viên mới
Tham gia
28/8/18
Bài viết
11
Được thích
0
Mình tạo ra 1 form xóa dòng , khi người dùng nhập số dòng cần xóa vào ô textbox sau đó nhấn cmd Xóa thì số dòng tương ứng bị xóa đi, nhờ các bạn xem giúp mình

Sub XoaDong()
Dim DongXoa As Integer
If DongXoa <> 0 Then
DongXoa = CInt(txtNhapDong.Text)
Rows(DongXoa).Delete
End If
End Sub
 
Đoạn code "If DongXoa <> 0 Then" của bạn không bao giờ thỏa mãn vì biến DongXoa mới được khai báo.

Mã:
Sub XoaDong()
    Dim DongXoa As Integer
    DongXoa = CInt(txtNhapDong.Text)
    If DongXoa > 0 Then
        Rows(DongXoa).Delete
    End If
End Sub
 
Đoạn code "If DongXoa <> 0 Then" của bạn không bao giờ thỏa mãn vì biến DongXoa mới được khai báo.

Mã:
Sub XoaDong()
    Dim DongXoa As Integer
    DongXoa = CInt(txtNhapDong.Text)
    If DongXoa > 0 Then
        Rows(DongXoa).Delete
    End If
End Sub

tks @thuanfun đã giúp đỡ , mình đã sửa lại đoạn code theo hướng dẫn của bạn nhưng nó vẫn báo lỗi DongXoa = CInt(txtNhapDong.Text) ở phần này, bạn xem lại giúp mình
 
tks @thuanfun đã giúp đỡ , mình đã sửa lại đoạn code theo hướng dẫn của bạn nhưng nó vẫn báo lỗi DongXoa = CInt(txtNhapDong.Text) ở phần này, bạn xem lại giúp mình
Nên nhớ 1 lần cho tới ngày tận thế + thêm 1 ngày:

1. Nhiều khi tung 1 đoạn code, tách rời khỏi ngữ cảnh, thì người khác sẽ có khó khăn để đoán ý. Hãy mô tả cụ thể.

2. Nếu có lỗi thì thường có thông báo. Hãy ghi lại cho mọi người biết nội dung lỗi là gì. Cụm từ "báo lỗi" chả nói cụ thể về cái gì.

Nhìn vd. Sub CommandButton1_Click thì có thể chắc 99,99% là code có trong module UserForm. Nhìn Sub XoaDong thì chưa chắc lắm. Nếu Sub XoaDong có trong vd. Module1 thì dĩ nhiên "không ai biết" txtNhapDong nó là cái gì. Nếu đó là TextBox trên vd. UserForm1 thì khi viết code trong vd. Module1 phải thêm "tiền tố" UserForm1.
Mã:
Sub XoaDong()
    Dim DongXoa As Integer
    DongXoa = CInt(UserForm1.txtNhapDong.Text)
    If DongXoa > 0 Then
        Rows(DongXoa).Delete
    End If
End Sub
 
Thời buổi bi giờ dòng của bảng tính là Long rồi.
CLng thay vì CInt, hoặc là Fix(Val(...))

Click cmd rồi gọi XoaDong bằng cách nào?
Nếu có cái sub commandbuttonX_click gì đó thì bảo nó gọi sub XoaDong với tham số đúng hơn.
 
Nên nhớ 1 lần cho tới ngày tận thế + thêm 1 ngày:

1. Nhiều khi tung 1 đoạn code, tách rời khỏi ngữ cảnh, thì người khác sẽ có khó khăn để đoán ý. Hãy mô tả cụ thể.

2. Nếu có lỗi thì thường có thông báo. Hãy ghi lại cho mọi người biết nội dung lỗi là gì. Cụm từ "báo lỗi" chả nói cụ thể về cái gì.

Nhìn vd. Sub CommandButton1_Click thì có thể chắc 99,99% là code có trong module UserForm. Nhìn Sub XoaDong thì chưa chắc lắm. Nếu Sub XoaDong có trong vd. Module1 thì dĩ nhiên "không ai biết" txtNhapDong nó là cái gì. Nếu đó là TextBox trên vd. UserForm1 thì khi viết code trong vd. Module1 phải thêm "tiền tố" UserForm1.
Mã:
Sub XoaDong()
    Dim DongXoa As Integer
    DongXoa = CInt(UserForm1.txtNhapDong.Text)
    If DongXoa > 0 Then
        Rows(DongXoa).Delete
    End If
End Sub
tks bạn mình đã làm được rồi
 
Web KT
Back
Top Bottom