nguyenthaibinh113b2
Thành viên mới
- Tham gia
- 5/4/16
- Bài viết
- 33
- Được thích
- 1
Mỗi dòng là 1 sheet? --> 34 sheets?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: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 ạ
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 ạMỗi dòng là 1 sheet? --> 34 sheets?
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.....?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 ạ
Vậy thử với code nàyMặc định Sheet1,2,3... anh ạ
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
Alt + f11/insert module/ paste code/ F5 (Run)Cho em hỏi ngô síu cái này mình chép vào đâu ạ
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.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 ạ
Bạn muốn trả về kết qur như thế nào?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 ạ
thử thế này vậyKết quả trả về trong một sheet thì 1 cột là số cột kế bên là số serial ạ
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
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ộtEm cám ơn nhiều ạ.Thật tuyệt vời,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
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