emgaingayngo
Thành viên hoạt động



- Tham gia
- 9/2/07
- Bài viết
- 141
- Được thích
- 5
Bạn bổ sung thêm nhé:Mong các bạn trong GPE giúp tôi viết lại đoạn code (file đính kèm) cho đúng.
yêu cầu sắp xếp biến temp1 và temp2 trong 10 hàng, nếu vượt quá 10 hàng thì chuyển sang cột kế bên. Thanks Much!
Bạn bổ sung thêm nhé:
- Đâu là dử liệu nguồn
- Cell V5 có Validation, nó dùng để làm gì?
- Trích ra, đặt kết quả tại đâu?
Sub Thu()
Dim i As Long, j As Long, k As Long
With Range("W3:Z14")
.ClearContents
.NumberFormat = "@"
End With
j = Range("v1").Value
For i = 24 To 59
If Left(Cells(i, j), 1) = Left(Cells(i + 1, j), 1) Or Right(Cells(i, j), 1) = Right(Cells(i + 1, j), 1) Then
k = k + 1
Range("W3")(((k - 1) Mod 5) * 2 + 1, Int((k - 1) / 5) + 1).Resize(2).Value = Cells(i, j).Resize(2).Value
End If
Next
End Sub
Câu hỏi này đã từng được trả lời trên diển đàn vài lần rồi (bạn tìm xem)ndu96081631 cho mình hỏi thêm : Trên trang code của 1 sheet thì Sub và Private Sub khác nhau như thế nào?
Có thể rút gọn được nữa
Option Explicit
Sub Thu()
Dim Ww As Long, jJ As Long, Zz As Long
Dim Rw As Long, Col As Byte
With Range("W3:Z14")
.ClearContents: .NumberFormat = "@"
End With
jJ = [V1].Value
For Ww = 24 To 59
With Cells(Ww, jJ)
9 If Left(.Value, 1) = Left(.Offset(1), 1) Or Right(.Value, 1) = Right(.Offset(1), 1) Then
Zz = Zz + 1: Col = (Zz - 1) \ 5
Rw = Choose((Zz Mod 5) + 1, 8, 0, 2, 4, 6)
Range("W3").Offset(Rw, Col).Resize(2) = .Resize(2).Value
End If
End With
Next
End Sub
From Sa_DQ:
Dòng lệnh được đánh số 9 có thể viết gọn hơn, & chỉ đơn giản cho gọn mà thôi:
90 If .Value \ 10 = .Offset(1)\ 10 Or (.Value Mod 10) = (.Offset(1) Mod 10) Then