paste link dữ liệu từ hàng thành cột và mỏi hàng qua từng sheet

Liên hệ QC

nguyenthaibinh113b2

Thành viên mới
Tham gia
5/4/16
Bài viết
33
Được thích
1
Chào các anh chị ,em có khó khăn này mong anh chị giúp, em có 1 bảng dử liệu gồm 34 dòng và 16 cột, em muốn 1 dòng sẽ được copy và qua sheet 2 sẽ paste link theo cột,có file đính kèm ạ
 

File đính kèm

Chào các anh chị ,em có khó khăn này mong anh chị giúp, em có 1 bảng dử liệu gồm 34 dòng và 16 cột, em muốn 1 dòng sẽ được copy và qua sheet 2 sẽ paste link theo cột,có file đính kèm ạ
1 cách:
1. Tại Sheet1, bạn quét chọn vùng B1:Q31
2.Sang Sheet2, Click chuột phải, chọn Cell B2 và Past Special ------> Transpose ---->OK
Xong.
 
Dạ đúng rồi đó anh,đúng ra là 60 hàng tương đương 60 sheet đó ạ,em đã copy và paste hết 1 log số rồi,nhưng phê quá vì vậy mới lên đây nhờ các cao nhân chỉ bảo ạ
Cái này dùng code nhanh thui, nhưng tên sheet sẽ như thế nào? hay chỉ để mặc định sheet1,2,3.....?
 
Mặc định Sheet1,2,3... anh ạ
Vậy thử với code này
Mã:
Sub tach()
Dim arr(), i As Integer
For i = 1 To Range("B65000").End(3).Row
    arr = Sheets("Sheet 1").Range("B" & i & ":Q" & i).Value
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Range("B2:B17") = Application.WorksheetFunction.Transpose(arr)
Next
End Sub
 
Công thức này không có chức năng paste link à anh,vậy nếu muốn chạy dãy số khác em phải làm lại thao tác Alt + f11/insert module/ paste code/ F5 (Run) lần nửa à,với lại nếu em muốn thêm hàng và cột thì công thức trên mình chỉnh sửa chổ nào ạ
 
Công thức này không có chức năng paste link à anh,vậy nếu muốn chạy dãy số khác em phải làm lại thao tác Alt + f11/insert module/ paste code/ F5 (Run) lần nửa à,với lại nếu em muốn thêm hàng và cột thì công thức trên mình chỉnh sửa chổ nào ạ
Dữ liệu ban đầu của bạn từ cột B đến cột Q, nếu bạn thay đổi cột thì thay dòng này thui, còn về hàng thì ko phải sủa code.
arr = Sheets("Sheet 1").Range("B" & i & ":Q" & i).Value
 
Em tăng thêm 2 cột nửa đến S nhưng em thay Q bằng S mà nó không hiểu anh ơi
 
Hôm nay chạy chương trình mới phát hiện một thiếu sót thật là ngớ ngẩn mong bác quangluu1989 thông cảm,bên em quản lỳ số thuê bao theo serial nên cột B là số thuê bao và cột C là serial,em muốn hàng thành cột và kèm luôn cả số serial .Mong các bác giúp ạ
 

File đính kèm

Hôm nay chạy chương trình mới phát hiện một thiếu sót thật là ngớ ngẩn mong bác quangluu1989 thông cảm,bên em quản lỳ số thuê bao theo serial nên cột B là số thuê bao và cột C là serial,em muốn hàng thành cột và kèm luôn cả số serial .Mong các bác giúp ạ
Bạn muốn trả về kết qur như thế nào?
 
Kết quả trả về trong một sheet thì 1 cột là số cột kế bên là số serial ạ
 
Kết quả trả về trong một sheet thì 1 cột là số cột kế bên là số serial ạ
thử thế này vậy
Mã:
Sub tach()
Dim arrdt(1 To 9, 1 To 1), arrseri(1 To 9, 1 To 1), i, j As Integer
With Sheets("Sheet 1")
For i = 2 To .Range("B65000").End(3).Row
 For j = 2 To 18 Step 2
    arrdt(j / 2, 1) = .Cells(i, j)
    arrseri(j / 2, 1) = .Cells(i, j + 1)
  Next
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Range("B2").Resize(9, 1) = arrdt
    ActiveSheet.Range("C2").Resize(9, 1) = arrseri
Next
End With
End Sub
 
Em cám ơn nhiều ạ.Thật tuyệt vời-=09=-=09=-=09=,sẳn đây cho em hỏi nếu muôn tăng thêm dòng hoặc cột thì công thức trên mình sửa chổ nào anh quangluu1989
 
Em cám ơn nhiều ạ.Thật tuyệt vời-=09=-=09=-=09=,sẳn đây cho em hỏi nếu muôn tăng thêm dòng hoặc cột thì công thức trên mình sửa chổ nào anh quangluu1989
Vậy thì dùng code tổng quát này vậy, ko cần quan tâm có bao nhiêu dòng, bao nhiêu cột
Mã:
Sub tach()
Dim arrdt(), arrseri(), i, j, lastcol As Integer
With Sheets("Sheet 1")
lastcol = Cells(2, Columns.Count).End(xlToLeft).Column
ReDim arrdt(1 To (lastcol - 1) / 2, 1 To 1), arrseri(1 To (lastcol - 1) / 2, 1 To 1)
For i = 2 To .Range("B65000").End(3).Row
 For j = 2 To (lastcol - 1) Step 2
    arrdt(j / 2, 1) = .Cells(i, j)
    arrseri(j / 2, 1) = .Cells(i, j + 1)
  Next
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Range("B2").Resize((lastcol - 1) / 2, 1) = arrdt
    ActiveSheet.Range("C2").Resize((lastcol - 1) / 2, 1) = arrseri
Next
End With
End Sub
 
Thanks quangluu1989 nhiều,chúc Anh sức khỏe và công việc ngày càng tấn tới ạ@$@!^%
 
Web KT

Bài viết mới nhất

Back
Top Bottom