Thử với Sub này xem sao.A/E forum viết code VBA đảo chiều từ 1=>>12 sang 12=>>1 mà vẫn được giá trị như ban đầu.
Cảm ơn mọi người quan tâm, giúp đỡ!
Public Sub GPE()
Dim sArr(), dArr(), I As Long, J As Long
With Sheet1
sArr = .Range(.[A3], .[A1000].End(3)).Offset(, 1).Resize(, 12).Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 12)
For I = 1 To UBound(sArr, 1)
For J = 12 To 1 Step -1
dArr(I, 13 - J) = sArr(I, J)
Next J
Next I
.[O3].Resize(I - 1, 12).Value = dArr
End With
End Sub
Sub DaoChieu()
Dim Arr, sArr
Dim iC, jR, k As Integer
Arr = Range("B3:M11")
ReDim sArr(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
For iC = UBound(Arr, 2) To 1 Step -1
k = k + 1
For jR = 1 To UBound(Arr, 1)
sArr(jR, k) = Arr(jR, iC)
Next
Next
[O13].Resize(UBound(sArr, 1), UBound(sArr, 2)) = sArr
End Sub
=OFFSET($M$3,ROW(1:1)-1,12-COLUMN(L:L))
A/E forum viết code VBA đảo chiều từ 1=>>12 sang 12=>>1 mà vẫn được giá trị như ban đầu.
Cảm ơn mọi người quan tâm, giúp đỡ!
Sub Test()
With Sheet1
.Range("B3:M11").Copy .Range("O3")
With .Range("O3:Z11")
.Sort .Rows(1), 2, , , , , , xlYes, , , xlLeftToRight
End With
End With
End Sub
Sub DaoChieu()
Dim Arr, sArr
Dim iC, jR, k As Integer
Arr = Range("B3", Cells([A65536].End(xlUp).Row, [IV3].End(xlToLeft).Column))
ReDim sArr(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
For iC = UBound(Arr, 2) To 1 Step -1
k = k + 1
For jR = 1 To UBound(Arr, 1)
sArr(jR, k) = Arr(jR, iC)
Next
Next
[IV3].End(xlToLeft).Offset(, 2).Resize(UBound(sArr, 1), UBound(sArr, 2)) = sArr
End Sub
Hi, cái này anh quất 1 fát đến cột IV luônCó phải bạn muốn như thế này:
Mã:Sub DaoChieu() Dim Arr, sArr Dim iC, jR, k As Integer Arr = Range("B3", Cells([A65536].End(xlUp).Row, [IV3].End(xlToLeft).Column)) ReDim sArr(1 To UBound(Arr, 1), 1 To UBound(Arr, 2)) For iC = UBound(Arr, 2) To 1 Step -1 k = k + 1 For jR = 1 To UBound(Arr, 1) sArr(jR, k) = Arr(jR, iC) Next Next [IV3].End(xlToLeft).Offset(, 2).Resize(UBound(sArr, 1), UBound(sArr, 2)) = sArr End Sub
Arr = Range("B3", Cells([A65536].End(xlUp).Row, [IV3].End(xlToLeft).Column))
Bạn đã thử Code chưa mà biết nó "Quất" đến cột IV?Hi, cái này anh quất 1 fát đến cột IV luôn
Vì em đang học code, anh giúp em lại câu lệnh, làm sao đến cột cuối cùng,kể từ cột B3 có dữ liệu liên tục đến 1 cột bất kỳ nào thôi (có thể đến cell O3 hay X3 hoặc AA3 gì đó)Mã:Arr = Range("B3", Cells([A65536].End(xlUp).Row, [IV3].End(xlToLeft).Column))
Em cảm ơn!
Nên phải thử Code mới biết có đúng hay không chứCột đầu tiên của kết quả sẽ cách cột cuối cùng 1 cột
Dĩ nhiên em đã thửBạn đã thử Code chưa mà biết nó "Quất" đến cột IV?
Bạn đã yêu cầu
Nên phải thử Code mới biết có đúng hay không chứ
Thân!
Hi, cái này anh quất 1 fát đến cột IV luôn
Vì em đang học code, anh giúp em lại câu lệnh, làm sao đến cột cuối cùng,kể từ cột B3 có dữ liệu liên tục đến 1 cột bất kỳ nào thôi (có thể đến cell O3 hay X3 hoặc AA3 gì đó)Mã:Arr = Range("B3", Cells([A65536].End(xlUp).Row, [IV3].End(xlToLeft).Column))
Em cảm ơn!
Sub CopyAndSort(ByVal rng As Range, ByVal Target As Range)
rng.Copy Target
With Target.Resize(rng.Rows.Count, rng.Columns.Count)
.Sort .Rows(1), 2, , , , , , xlYes, , , xlLeftToRight
End With
End Sub
Sub Test()
With Sheet1.Range("B3:M11") ''<--- Vùng này "ông" phải tự xác định, tui không biết!
CopyAndSort .Cells, .Offset(, .Columns.Count + 1)
End With
End Sub
Chắc do tôi không hiểu yêu cầu của bạn chăngDĩ nhiên em đã thử
Vì em chỉ muốn từ cell B3 có dữ liệu liên tục đến cell bất kỳ ( Ví dụ đến cell AA) , vì có thể cell CA3 của em là số liệu khác.
Em cảm ơn!
Chắc do tôi không hiểu yêu cầu của bạn chăng
Code này chỉ nhằm đảo thứ tự Cột như chủ Topic + yêu cầu của bạn (số cột bất kỳ, số dòng bất kỳ, kết quả sau khi đảo cách dữ liệu cuối 1 cột). Còn nếu không đúng ý thì bạn có thể Post File giả định xem
Cái mà em đang muốn học để xác định vùng dữ liệu là dùng CurrentRegion và xlLefttoRight trong trường hợp nàyVì cái chuyện XÁC ĐỊNH VÙNG DỮ LIỆU nó vô chừng lắm, tùy vào tình hình thực tế mà quyết định sẽ dùng CurrentRegion hay xlUp hay xlLefttoRight... vân vân...
Cái mà em đang muốn học để xác định vùng dữ liệu là dùng CurrentRegion và xlLefttoRight trong trường hợp này
Thầy giúp em 2 ví dụ trên với
Em cảm ơn!
Thầy giúp em cái này
Em cảm ơn
Range([A60000].End(xlUp).Offset(,1), [IV3].End(xlToLeft)).Select
Range([A3].End(xlDown).Offset(,1), [B3].End(xlToRight)).Select
Intersect(Range("A3").CurrentRegion, Range("A3").CurrentRegion.Offset(, 1)).Select