Hoàng Văn Tài
Hoàng Văn Tài
Thảo luận 13 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 350 lượt xem

Mình có thử viết lại đoạn code xóa dòng như trong ví dụ của giáo

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.

Thảo luận 13 câu trả lời
Lượt xem 350 lượt xem
Vỗ tay vỗ tay
Hoàng Văn Tài 08:08 - Aug 26, 2020

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ỗ tay vỗ tay
Hoàng Văn Tài 09:08 - Aug 26, 2020

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 ạ?

Vỗ tay vỗ tay
Hoàng Văn Tài 10:08 - Aug 26, 2020

chào bạn đây là dòng số 1 bạn bạn có thể đẩy code lên được không?


Vỗ tay vỗ tay
Hoàng Văn Tài 10:08 - Aug 26, 2020

đâ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


Vỗ tay vỗ tay
Hoàng Văn Tài 10:08 - Aug 26, 2020

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

Vỗ tay vỗ tay
Hoàng Văn Tài 11:08 - Aug 26, 2020

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

Vỗ tay vỗ tay
Hoàng Văn Tài 11:08 - Aug 26, 2020

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?

Vỗ tay vỗ tay
Hoàng Văn Tài 11:08 - Aug 26, 2020

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é.

Vỗ tay vỗ tay
Hoàng Văn Tài 11:08 - Aug 26, 2020

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 ạ

Vỗ tay vỗ tay
Hoàng Văn Tài 13:08 - Aug 26, 2020

Chào bạn bạn cần reconmacro để thực hiện sự kiện và đặt tên là Data_SapXep nhé.

Vỗ tay vỗ tay
Hoàng Văn Tài 13:08 - Aug 26, 2020

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 đó.

Vỗ tay vỗ tay
Hoàng Văn Tài 15:08 - Aug 26, 2020

- 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

Vỗ tay vỗ tay
Hoàng Văn Tài 15:08 - Aug 26, 2020

mình cảm ơn ạ

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
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông