hiénlinh197
Thành viên tiêu biểu
- Tham gia
- 26/5/09
- Bài viết
- 491
- Được thích
- 113
Sub Copy3()
Dim i, j
For i = 1 To 6
For j = 1 To 6
'cau lenh nay ban can viet lai nhe, toi chi dua ra giai phap goi ten sheet cho ban thoi
Worksheets(i + j - 1).Range().copy Worksheets("TH" & i).Range()
Next
Next
End Sub
Cảm ơn bạn vu_tuan_manh_linh, bạn có thể viết luôn cho mình được không? Mình mù tịt lắm không thể viết tiếp được bạn à.Thử cách này xem bạn. Đổi tên sheet TH thành TH1 cho đồng bộ dữ liệu nhé!
PHP:Sub Copy3() Dim i, j For i = 1 To 6 For j = 1 To 6 'cau lenh nay ban can viet lai nhe, toi chi dua ra giai phap goi ten sheet cho ban thoi Worksheets(i + j - 1).Range().copy Worksheets("TH" & i).Range() Next Next End Sub
Bạn thử code này xem đúng ý không.Nhờ các bạn viết rút gọn code copy trình bày như file đính kèm.
Cảm ơn các bạn!
Sub Test()
Dim i As Long
For i = 1 To 5
MyCopy i
Next
End Sub
Private Sub MyCopy(ByVal ToShIndex As Long)
Dim ToSh As Worksheet, i As Long
Set ToSh = Sheets("TH" & IIf(ToShIndex = 1, "", ToShIndex))
For i = 1 To 6
With Sheets(CStr((ToShIndex - 1) * 6 + i))
.Range("A63:M163").Copy ToSh.Cells(2, (i - 1) * 43 + 2)
.Range("A333:M433").Copy ToSh.Cells(2, (i - 1) * 43 + 16)
.Range("A603:M703").Copy ToSh.Cells(2, (i - 1) * 43 + 30)
End With
Next
End Sub
1 kiểu viết khác, không có bẫy lỗi. (Không có 1 "miếng" dữ liệu để kiểm tra)Cảm ơn bạn vu_tuan_manh_linh, bạn có thể viết luôn cho mình được không? Mình mù tịt lắm không thể viết tiếp được bạn à.
Public Sub S_Gpe()
Dim I As Long, J As Long, Col As Long, fSh As Long, eSh As Long, ShName As String
For I = 1 To 5
With Sheets("TH" & I)
Col = 2: fSh = I * 6 - 5: eSh = I * 6
For J = fSh To eSh
ShName = CStr(J)
.Cells(2, Col).Resize(101, 13).Value = Sheets(ShName).Range("A63:M163").Value
Col = Col + 14
.Cells(2, Col).Resize(101, 13).Value = Sheets(ShName).Range("A333:M433").Value
Col = Col + 14
.Cells(2, Col).Resize(101, 13).Value = Sheets(ShName).Range("A603:M703").Value
Col = Col + 14
Next J
End With
Next I
End Sub
Cảm ơn bạn huuthang_bd! thật là quá tuyệt vời, chỉ trong vòng tíc tắc quá hay bạn à.Bạn thử code này xem đúng ý không.
Mã:Sub Test() Dim i As Long For i = 1 To 5 MyCopy i Next End Sub
Mã:Private Sub MyCopy(ByVal ToShIndex As Long) Dim ToSh As Worksheet, i As Long Set ToSh = Sheets("TH" & IIf(ToShIndex = 1, "", ToShIndex)) For i = 1 To 6 With Sheets(CStr((ToShIndex - 1) * 6 + i)) .Range("A63:M163").Copy ToSh.Cells(2, (i - 1) * 43 + 2) .Range("A333:M433").Copy ToSh.Cells(2, (i - 1) * 43 + 16) .Range("A603:M703").Copy ToSh.Cells(2, (i - 1) * 43 + 30) End With Next End Sub
Hình như lần cuối cùng phải + 15 mới đúng đó anh.1 kiểu viết khác, không có bẫy lỗi. (Không có 1 "miếng" dữ liệu để kiểm tra)
Sheet("TH") sửa lại tên thành "TH1"
PHP:Public Sub S_Gpe() Dim I As Long, J As Long, Col As Long, fSh As Long, eSh As Long, ShName As String For I = 1 To 5 With Sheets("TH" & I) Col = 2: fSh = I * 6 - 5: eSh = I * 6 For J = fSh To eSh ShName = CStr(J) .Cells(2, Col).Resize(101, 13).Value = Sheets(ShName).Range("A63:M163").Value Col = Col + 14 .Cells(2, Col).Resize(101, 13).Value = Sheets(ShName).Range("A333:M433").Value Col = Col + 14 .Cells(2, Col).Resize(101, 13).Value = Sheets(ShName).Range("A603:M703").Value Col = Col + 14 Next J End With Next I End Sub
Col = Col + 15
Cảm ơn bạn Ba Tê! quá hay đúng ý của mình, thật bất ngờ 2 cách viết của 2 bạn Ba Tê và huuthang_bd khác nhau nhưng rất chuẩn. Bây giờ không biết mình nên sử dụng code nào đây?1 kiểu viết khác, không có bẫy lỗi. (Không có 1 "miếng" dữ liệu để kiểm tra)
Sheet("TH") sửa lại tên thành "TH1"
PHP:Public Sub S_Gpe() Dim I As Long, J As Long, Col As Long, fSh As Long, eSh As Long, ShName As String For I = 1 To 5 With Sheets("TH" & I) Col = 2: fSh = I * 6 - 5: eSh = I * 6 For J = fSh To eSh ShName = CStr(J) .Cells(2, Col).Resize(101, 13).Value = Sheets(ShName).Range("A63:M163").Value Col = Col + 14 .Cells(2, Col).Resize(101, 13).Value = Sheets(ShName).Range("A333:M433").Value Col = Col + 14 .Cells(2, Col).Resize(101, 13).Value = Sheets(ShName).Range("A603:M703").Value Col = Col + 14 Next J End With Next I End Sub
Rất cảm ơn bạn huuthang_bd "Col + 14" là đúng bạn à. Nhưnh bây giờ mình muốn copy giá trị thì phải sửa như nào nhỉ bạn?Hình như lần cuối cùng phải + 15 mới đúng đó anh.
Mã:Col = Col + 15
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2