HUNGNGUYENCONG
Thành viên chính thức


- Tham gia
- 18/7/19
- Bài viết
- 54
- Được thích
- 3
Sub TongHop()
Dim i As Long, lr As Long
Dim arr()
Dim ws As Worksheet
ReDim arr(1 To Worksheets.Count - 1)
For Each ws In Worksheets
If ws.Name <> "TONG CAC THANG" Then
i = i + 1
lr = ws.Range("A" & Rows.Count).End(xlUp).Row
arr(i) = ws.Range("A8:I" & lr)
End If
Next ws
With Sheets("TONG CAC THANG")
lr = .Range("A" & Rows.Count).End(xlUp).Row
If lr > 7 Then .Range("A8:I" & lr).ClearContents
For i = 1 To UBound(arr)
lr = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A" & lr + 1).Resize(UBound(arr(i)), UBound(arr(i), 2)) = arr(i)
Next i
End With
End Sub
Cảm ơn bạn !Bạn thử code này
Mã:Sub TongHop() Dim i As Long, lr As Long Dim arr() Dim ws As Worksheet ReDim arr(1 To Worksheets.Count - 1) For Each ws In Worksheets If ws.Name <> "TONG CAC THANG" Then i = i + 1 lr = ws.Range("A" & Rows.Count).End(xlUp).Row arr(i) = ws.Range("A8:I" & lr) End If Next ws With Sheets("TONG CAC THANG") lr = .Range("A" & Rows.Count).End(xlUp).Row If lr > 7 Then .Range("A8:I" & lr).ClearContents For i = 1 To UBound(arr) lr = .Range("A" & Rows.Count).End(xlUp).Row .Range("A" & lr + 1).Resize(UBound(arr(i)), UBound(arr(i), 2)) = arr(i) Next i End With End Sub
không được bạn nhé, sheets("...") phần trong ngoặc chỉ có tên của 1 sheet thôi. Bạn đưa tên của cả 3 sheet vào trong ngoặc thì nó sẽ báo lỗi. Giờ muốn thay câu lệnh If ws.Name <> "TONG CAC THANG" Then thì có thể dùng if ws.Name ="Thang 1" or ws.Name="Thang 2" or ws.Name="Thang 3" ThenCảm ơn bạn !
code chạy được rồi .Cho mình hỏi :câu lệnh ( If ws.Name <> "TONG CAC THANG" Then) sheet "TONG CAC THANG" có thể thay bằng sheets("Thang 1,Thang 2,Thang 3")được không ?mình bỏ vào thì VBA báo lỗi.