Sắp xếp lại biến đã được tìm thấy theo những điều kiện nhất định.

Liên hệ QC

emgaingayngo

Thành viên hoạt động
Tham gia
9/2/07
Bài viết
141
Được thích
5
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!
 

File đính kèm

  • xapsepDL.xls
    96 KB · Đọc: 15
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?
- Mô tả sơ bộ phương thức lọc (lười đọc code quá... nó dài nhằng)
 
Lần chỉnh sửa cuối:
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?

_Nguồn DL nằm từ dòng 24 đến dòng 59
_ Cell 5 dùng để chọn cột DL
_ Trích ra đặt kq tại W3->w14, nếu còn thì chuyển qua cột kế bên

Mình bị bí đoạn code chuyển qua cột kế khi DL lấy ra hơn 10.
 
Cũng chưa rõ lắm cách mà bạn đang lọc, nhưng làm đại:
PHP:
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ó thể rút gọn được nữa)
 
ndu96081631 cho mình hỏi thêm : Trên trang code của 1 sheet thì Sub Private Sub khác nhau như thế nào?
 
ndu96081631 cho mình hỏi thêm : Trên trang code của 1 sheet thì Sub Private Sub khác nhau như thế nào?
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)
Nói nôm na thì Private Sub mang tính riêng tư ---> Nếu bạn đặt nó trong sheet thì nó chỉ có tác dụng trong sheet đó mà thôi ---> Với Sub thì gọi nó từ đâu cũng được
 
Dễ hiểu hơn nè, mại zô!

Có thể rút gọn được nữa
Mã:
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
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom