Đình Phán
Thành viên thường trực
- Tham gia
- 23/11/10
- Bài viết
- 232
- Được thích
- 68
- Giới tính
- Nam
- Nghề nghiệp
- kt
Đại khái là thế này, bạn tùy chỉnh theo ý bạnChào các ACE GPE
Em có 01 bài toán này mà nghĩ mãi chưa có lời giải, em đã dùng vòng lặp For Next của 2 biến i và j để lặp từng cột nhưng vẫn không ra.
Nhờ các ACE giúp đỡ.
Em cảm ơn!
Public Sub Tach()
Dim Hang, Cot, kK, I, J, K
Set Hang = [B2:F2]
Set Cot = [A3:A5]
ReDim kK(1 To Hang.Columns.Count * Cot.Rows.Count, 1 To 3)
For I = 1 To Hang.Columns.Count
For J = 1 To Cot.Rows.Count
K = K + 1
kK(K, 1) = Hang(I): kK(K, 2) = Cot(J): kK(K, 3) = Hang(I).Offset(J)
Next J
Next I
[M3].Resize(K, 3) = kK
End Sub
Đại khái là thế này, bạn tùy chỉnh theo ý bạn
PHP:Public Sub Tach() Dim Hang, Cot, kK, I, J, K Set Hang = [B2:F2] Set Cot = [A3:A5] ReDim kK(1 To Hang.Columns.Count * Cot.Rows.Count, 1 To 3) For I = 1 To Hang.Columns.Count For J = 1 To Cot.Rows.Count K = K + 1 kK(K, 1) = Hang(I): kK(K, 2) = Cot(J): kK(K, 3) = Hang(I).Offset(J) Next J Next I [M3].Resize(K, 3) = kK End Sub
Cách nhau là cách mấy cột? Bạn hỏi thì phải có bảng kết quả mẫu người khác mới hiểu được chứ.Cảm ơn anh Concogia,
Giờ em muốn các cột kết quả trả về cách nhau thì làm thế nào ạ?
Public Sub GPE()
Dim sArr(), dArr(), I As Long, J As Long, K As Long
sArr = Range("A2:F5").Value
ReDim dArr(1 To UBound(sArr) * UBound(sArr, 2), 1 To 5)
For J = 2 To UBound(sArr, 2)
For I = 2 To UBound(sArr)
K = K + 1
dArr(K, 1) = sArr(1, J)
dArr(K, 3) = sArr(I, 1)
dArr(K, 5) = sArr(I, J)
Next I
Next J
Range("I2").Resize(K, 5) = dArr
End Sub
Cảm ơn anh Ba Tê,Cách nhau là cách mấy cột? Bạn hỏi thì phải có bảng kết quả mẫu người khác mới hiểu được chứ.
Code này là từ bảng dữ liệu A2->F5, kết quả xuất ra 5 cột ( I2 --> M16, cách nhau 1 cột). Bạn tự điều chỉnh theo ý bạn.
PHP:Public Sub GPE() Dim sArr(), dArr(), I As Long, J As Long, K As Long sArr = Range("A2:F5").Value ReDim dArr(1 To UBound(sArr) * UBound(sArr, 2), 1 To 5) For J = 2 To UBound(sArr, 2) For I = 2 To UBound(sArr) K = K + 1 dArr(K, 1) = sArr(1, J) dArr(K, 3) = sArr(I, 1) dArr(K, 5) = sArr(I, J) Next I Next J Range("I2").Resize(K, 5) = dArr End Sub
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2