Mình có thử viết lại đoạn code xóa dòng như trong ví dụ của thầy giáo trong bài giảng trên, nhưng chạy thử thì vẫn không được, cho mình hỏi 2 câu lệnh trong đoạn code
lr = DongCuoi(Sheet2, 1)
Data_SapXep
có ý nghĩa gì vì khi mình chạy đoạn code thấy báo lỗi ở 2 chỗ này vì không xác định được.
Chào bạn ở đây là 1 sub và 1 function trong vba
Function Dongcuoi là để tìm địa chỉ dòng cuối trong sheets đó ở đây là sheet2
data_sapxep là sắp xếp lại thứ tự trong sheets đó.
Vâng, nhưng khi mình chạy đoạn code thì bị báo lỗi Sub or Function not defined thì không biết là sửa như thế nào ạ.
Và cho mình hỏi thêm là số "1" trong function DongCuoi có ý nghĩa gì nữa ạ?
chào bạn đây là dòng số 1 bạn bạn có thể đẩy code lên được không?
đây ạ: https://imgur.com/Q3eJVtq
Sub Xoa_Dong()
Dim ThongDiepXoa As String
ThongDiepXoa = "Chon dong co noi dung"
Dim DongXoa As Long
DongXoa = ActiveCell.Row
Dim lr As Long
lr = DongCuoi(Sheet1, 1)
If DongXoa > 2 And DongXoa <= lr And lr > 2 Then
Dim CanhBaoXoaDong As Integer
CanhBaoXoaDong = MsgBox("Ban co muon xoa khong?", vbOKCancel + vbInformation + vbDefaultButton2, "Warning")
Select Case CanhBaoXoaDong
Case vbOK
Sheet1.Range("A" & DongXoa & ":AH" & DongXoa).ClearContents
Sheet1.Range("A" & DongXoa & ":AH" & DongXoa).Interior.ThemeColor = xlNone
Data_SapXep
MsgBox "Da xoa thanh cong!"
Case vbCancel
Exit Sub
End Select
Else
MsgBox ThongDiepXoa
Exit Sub
End If
End Sub
Sub Xoa_Dong()
Dim ThongDiepXoa As String
ThongDiepXoa = "Chon dong co noi dung"
Dim DongXoa As Long
DongXoa = ActiveCell.Row
Dim lr As Long
lr = DongCuoi(Sheet1, 1)
If DongXoa > 2 And DongXoa <= lr And lr > 2 Then
Dim CanhBaoXoaDong As Integer
CanhBaoXoaDong = MsgBox("Ban co muon xoa khong?", vbOKCancel + vbInformation + vbDefaultButton2, "Warning")
Select Case CanhBaoXoaDong
Case vbOK
Sheet1.Range("A" & DongXoa & ":AH" & DongXoa).ClearContents
Sheet1.Range("A" & DongXoa & ":AH" & DongXoa).Interior.ThemeColor = xlNone
Data_SapXep
MsgBox "Da xoa thanh cong!"
Case vbCancel
Exit Sub
End Select
Else
MsgBox ThongDiepXoa
Exit Sub
End If
End Sub
Chào bạn bạn đang không có code của dòng cuối bạn cần viết như sau:
Function DongCuoi(Ws As Worksheet, col As Integer) As Long
DongCuoi= Ws.Cells(Rows.Count, 1).End(xlUp).Row
End Function
sao mình thêm đoạn code này vào thì mấy chỗ Exit sub hay End sub nó lại nhảy thành End Function hoặc Exit Function ạ.
vậy thì thêm đoạn code trên vào phần nào cho đúng ah?
Chào bạn bạn thêm vào cuối cùng của sub kia dưới phần end sub nhé.
oki ạ, nhưng vẫn còn 1 chỗ bị báo lỗi not defined nữa là câu lệnh Data_SapXep
thầy giáo xem lại code ở trên sửa giúp mình với ạ
Chào bạn bạn cần reconmacro để thực hiện sự kiện và đặt tên là Data_SapXep nhé.
Câu lệnh Data_SapXep là 1 macro mà giảng viên đã tạo khi thực hiện việc record macro cho thao tác sắp xếp (sort) bảng tính.
Bạn xem lại phần này ở chương 2 nhé.
Trong quá trình làm việc, có nhiều câu lệnh bạn có thể tận dụng thông qua việc record macro để viết code nhanh hơn, do đó các bài tập ở trong chương 2 bạn nên làm qua 1 lần để có sẵn các code đó.
- record macro thì recrod cho hành động gì trên bảng dữ liệu ah?
- còn nếu tạo sự kiện SelectChange thì mình có thấy đoạn code này thì có đúng không ah:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
mình cảm ơn ạ