hongphuong1997
Thành viên tiêu biểu

- Tham gia
- 12/11/17
- Bài viết
- 773
- Được thích
- 323
- Giới tính
- Nữ
Cái này record macro rồi sửa lại là có ngay mà bạn.Em nhờ thầy cô và anh chị viết giúp code copy cách cột như file đính kèm
Em xin cảm ơn.
Sub Macro1()
'
' Macro1 Macro
'
'
Sheets("1").Range("B4:B7").Copy Sheets("2").Range("AA3")
Sheets("1").Range("C4:C7").Copy Sheets("2").Range("AH3")
'...
End Sub
Mình cũng đang định hỏi vấn đề y như bạn vậy. Ví dụ mình có một cột đã lọc ra ngày tháng và tên khách hàng. Giờ mình muốn copy ra bên sheet khác mà không copy cột khách hàng. Không lẽ chọn từ cột này tới cột kia, rồi cột kia tới cột nọ ta?Em nhờ thầy cô và anh chị viết giúp code copy cách cột như file đính kèm
Em xin cảm ơn.
Hi hi..... chịu anh đấy.Cái này record macro rồi sửa lại là có ngay mà bạn.
Nói vậy thôi chứ chắc mấy chục bài mới xongMã:Sub Macro1() ' ' Macro1 Macro ' ' Sheets("1").Range("B4:B7").Copy Sheets("2").Range("AA3") Sheets("1").Range("C4:C7").Copy Sheets("2").Range("AH3") '... End Sub
![]()
Tôi viết cho bạn đấy chứ trêu gì bạn. Code đấy sai chỗ nào? Bạn bổ sung thêm mấy dòng nữa tương tự như các dòng đã có là xong.Hi hi..... chịu anh đấy.
Anh đừng trêu em nữa
Anh viết giúp em với anh
Sub Macro2()
'
' Macro2 Macro
'
'
Sheets("2").Range("AA3:AA6,AH3:AH6,AO3:AO6,AV3:AV6,BC3:BC6,BJ3:BJ6").Copy Sheets("1").Range("O25")
End Sub
hu hu..... nhưng mà em có mấy ngàn cột thì cứ làm như vậy đến bao giờ hở anh?Tôi viết cho bạn đấy chứ trêu gì bạn. Code đấy sai chỗ nào? Bạn bổ sung thêm mấy dòng nữa tương tự như các dòng đã có là xong.
Bổ sung Code cho yêu cầu 2:
Mã:Sub Macro2() ' ' Macro2 Macro ' ' Sheets("2").Range("AA3:AA6,AH3:AH6,AO3:AO6,AV3:AV6,BC3:BC6,BJ3:BJ6").Copy Sheets("1").Range("O25") End Sub
Yêu cầu thế nào tôi đã viết thế ấy, và đã rất cẩn thận.hu hu..... nhưng mà em có mấy ngàn cột thì cứ làm như vậy đến bao giờ hở anh?
Anh viết cẩn thận cho em đi
Cảm ơn anh
Còn thông tin "mấy ngàn cột" là thông tin mới.Nguyên văn yêu cầu trong file đã viết:1- Copy cột B4-B7 sang cột (AA3-AA6) của sheet"2"
Copy cột c4-c7 sang cột (Ah3-Ah6) của sheet"2"
Và cứ lần lượt như vậy đến hết 6 cột
Em biết là anh gợi ý để cho em làmYêu cầu thế nào tôi đã viết thế ấy, và đã rất cẩn thận.
Còn thông tin "mấy ngàn cột" là thông tin mới.
Thế nhé.
Cả Bác này nữaHa ha. Mới có 1 "nhưng mà" đã nhảy từ 6 lên hàng ngàn. Em thích khúc này.![]()
Tôi thấy bạn hỏi nhiều và đã được nhắc nhở nhiều nhưng sao vẫn không rút kinh nghiệm?Em biết là anh gợi ý để cho em làm
Nhưng mờ em chưa biết dùng for....Next
Anh viết giúp em tý tẹo thôi mờ
Anh viết giúp em nhé
Const CachQuang As Long = 7
Sub Test1()
CopyXuoi Sheets("1").Range("B4:G7"), Sheets("2").Range("AA3")
End Sub
Sub Test2()
CopyNguoc Sheets("1").Range("O25:T25"), Sheets("2").Range("AA3:AA6")
End Sub
Private Sub CopyXuoi(Rng1 As Range, Rng2 As Range)
Dim i As Long
For i = 1 To Rng1.Columns.Count
Rng1.Columns(i).Copy Rng2.Cells(1, (i - 1) * CachQuang + 1)
Next
End Sub
Private Sub CopyNguoc(Rng1 As Range, Rng2 As Range)
Dim i As Long
For i = 1 To Rng1.Columns.Count
Rng2.Offset(, (i - 1) * CachQuang).Copy Rng1.Cells(1, i)
Next
End Sub
Hi hi.... em cảm ơn anh nhiều nhiều nhé!Tôi thấy bạn hỏi nhiều và đã được nhắc nhở nhiều nhưng sao vẫn không rút kinh nghiệm?
Lần cuối nhé.
Mã:Const CachQuang As Long = 7 Sub Test1() CopyXuoi Sheets("1").Range("B4:G7"), Sheets("2").Range("AA3") End Sub Sub Test2() CopyNguoc Sheets("1").Range("O25:T25"), Sheets("2").Range("AA3:AA6") End Sub Private Sub CopyXuoi(Rng1 As Range, Rng2 As Range) Dim i As Long For i = 1 To Rng1.Columns.Count Rng1.Columns(i).Copy Rng2.Cells(1, (i - 1) * CachQuang + 1) Next End Sub Private Sub CopyNguoc(Rng1 As Range, Rng2 As Range) Dim i As Long For i = 1 To Rng1.Columns.Count Rng2.Offset(, (i - 1) * CachQuang).Copy Rng1.Cells(1, i) Next End Sub
Cột đi Cột đến
2 27
3 34
4 41
5 48
For Col = 2 to Num
Cells(4, Col).Resize( Rws). Copy Destination:= Sheets("2").Cells(3, (1+ Col)*7 + 6)
Next Col
Cháu cảm ơn BácCách làm là vầy:
Lập bảng cột nguôn (chép) & đích (đến), như sau:
Ta sẽ có qui luật sau:PHP:Cột đi Cột đến 2 27 3 34 4 41 5 48
(2 +1) *7 + 6 => 27
(3 + 1) * 7 + 6 => 34
(4 + 1) * 7 + 6 => 41
. . . .
Mã:For Col = 2 to Num Cells(4, Col).Resize( Rws). Copy Destination:= Sheets("2").Cells(3, (1+ Col)*7 + 6) Next Col