Code VBA đảo chiều A=>Z sang Z=>A (1 người xem)

  • Thread starter Thread starter QQV586
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

QQV586

Thành viên chính thức
Tham gia
28/2/13
Bài viết
75
Được thích
1
A/E forum viết code VBA đảo chiều từ 1=>>12 sang 12=>>1 mà các giá trị là 5,4,3,2,1 đều quy về 1 hết.
Cảm ơn mọi người đã quan tâm, giúp đỡ!​
 

File đính kèm

A/E forum viết code VBA đảo chiều từ 1=>>12 sang 12=>>1 mà các giá trị là 5,4,3,2,1 đều quy về 1 hết.
Cảm ơn mọi người đã quan tâm, giúp đỡ!​

Cái này làm bằng tay cũng được. Xem đoạn video clip dưới đây:

[video=youtube;xgSCm6TKRSs]http://www.youtube.com/watch?v=xgSCm6TKRSs&feature=youtu.be[/video]


Nếu vẫn muốn dùng code, cứ record macro quá trình làm bằng tay như trên sẽ có ngay code
 
Upvote 0
Cái này làm bằng tay cũng được. Xem đoạn video clip dưới đây:

[video=youtube;xgSCm6TKRSs]http://www.youtube.com/watch?v=xgSCm6TKRSs&feature=youtu.be[/video]


Nếu vẫn muốn dùng code, cứ record macro quá trình làm bằng tay như trên sẽ có ngay code
cảm ơn bác! Bác cứ cho em cai code cho nhanh. Video trên rất có ích cho em làm những bài phù hợp. thanks bác
 
Upvote 0
cảm ơn bác! Bác cứ cho em cai code cho nhanh. Video trên rất có ích cho em làm những bài phù hợp. thanks bác

Thì record macro thôi
Mã:
Sub Test()
  With Sheet1.Range("B3:M100")
    .Offset(1).SpecialCells(2).Value = 1
    .Sort .Rows(1), 2, , , , , , xlYes, , , xlLeftToRight
  End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
chuẩn với lượng nhỏ luôn bác, sang lượng lớn thay đổi kinh khủng em gửi file lớn bác coi xem . Thanks bác và forum!!!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
chuẩn với lượng nhỏ luôn bác, sang lượng lớn thay đổi kinh khủng em gửi file lớn bác coi xem . Thanks bác và forum!!!

Tại bạn đưa dữ liệu không đúng thực tế chi
Với dữ liệu này thì sửa code thành:
Mã:
Sub Test()
  With Sheet1.Range("[COLOR=#ff0000]B4:AC100[/COLOR]")
    [COLOR=#ff0000].SpecialCells(2).Value = 1[/COLOR]
    .Sort .Rows(1), 2, , , , , , [COLOR=#ff0000]xlNo[/COLOR], , , xlLeftToRight
  End With
End Sub
Những chổ màu đỏ là những chổ sửa lại
 
Upvote 0
Upvote 0
Tại bạn đưa dữ liệu không đúng thực tế chi
Với dữ liệu này thì sửa code thành:
Mã:
Sub Test()
  With Sheet1.Range("[COLOR=#ff0000]B4:AC100[/COLOR]")
    [COLOR=#ff0000].SpecialCells(2).Value = 1[/COLOR]
    .Sort .Rows(1), 2, , , , , , [COLOR=#ff0000]xlNo[/COLOR], , , xlLeftToRight
  End With
End Sub
Những chổ màu đỏ là những chổ sửa lại
E thử rồi vẫn sai bác ah. bác xem lại đi. copy đảo chiều quy về 1 được. sai dòng.
 
Upvote 0
Cụ thể là sai chổ nào?
Không hiểu sao em làm thì không đảo chiều hết(bác để ý kỹ những ô có chữ đỏ đó là dấu, sử dụng code xong đối chiếu xem sai khác không. của em hoàn toàn sai. mà không copy hết nữa. Bác cố gắng tìm hộ em lỗi này. (em thử với 28 cột, 36, 48 cột đều sai bác ah. em gửi bác làm thử rồi up file lên nha
 

File đính kèm

Upvote 0
E thử rồi vẫn sai bác ah. bác xem lại đi. copy đảo chiều quy về 1 được. sai dòng.

Mình thấy code của a Ndu rất ok
Hay ý bạn là như thế này :
[GPECODE=vb]
Sub Test()
Dim mycell As Range
Dim i As Byte
Application.ScreenUpdating = 0
For Each mycell In [B3:AC3]
i = i + 1
mycell.Value = i
Next
With Sheet1.Range("B3:AC100")
.Offset(1).SpecialCells(2).Value = 1
.Sort .Rows(1), 2, , , , , , xlYes, , , xlLeftToRight
End With
[B3:AC3].ClearContents
Application.ScreenUpdating = 1
End Sub

[/GPECODE]

Nếu code trên đúng yêu cầu của bạn --> thì đây không phải là bài toán " Đảo Chiều " mà kiểu " Mirror " thì đúng hơn
 
Lần chỉnh sửa cuối:
Upvote 0
Không hiểu sao em làm thì không đảo chiều hết(bác để ý kỹ những ô có chữ đỏ đó là dấu, sử dụng code xong đối chiếu xem sai khác không. của em hoàn toàn sai. mà không copy hết nữa. Bác cố gắng tìm hộ em lỗi này. (em thử với 28 cột, 36, 48 cột đều sai bác ah. em gửi bác làm thử rồi up file lên nha

Ah... tôi biết rồi
Muốn dùng Sort LeftToRight thì bắt buộc phải có dòng tiêu đề đánh STT từ nhỏ đến lớn, nếu không thì biết dựa vào cái gì để mà sort đây (toàn số 1, chẳng thằng nào lớn hơn thằng nào cả)
 
Lần chỉnh sửa cuối:
Upvote 0
- Lúc đầu bạn đưa dữ liệu là đến cột M
- Lần thứ 2 bạn đưa dữ liệu thêm đến cột AC
- Bây giờ dữ liệu mới của bạn lại đến cột AK
===> Code làm sao mà chính xác được đây?
Code
Mã:
Sub Test()
  With Sheet1.Range([COLOR=#ff0000]"B4:AK100[/COLOR]")
    .SpecialCells(2).Value = 1
    .Sort .Rows(1), 2, , , , , , xlNo, , , xlLeftToRight
  End With
End Sub
Hãy thay địa chỉ tại chổ màu đỏ cho phù hợp với dữ liệu thật của bạn chứ
Nếu làm mãi vẫn không xong, thôi thì làm bằng tay như video clip tôi đưa từ đầu cho... lành
bác ah! không phải không thay "B4:M" này mà thay rồi chạy sai kể cả cde ban đầu ấy. em thử với cái kia xem có thay đổi gì không. Nhưng vẫn sai. chứ không phải là em thay số liệu là nó sai. Ngay ban đầu rồi/ thế em có nhời với bác. bác coi lại giúp em. Thanks bác!
 
Upvote 0
bác ah! không phải không thay "B4:M" này mà thay rồi chạy sai kể cả cde ban đầu ấy. em thử với cái kia xem có thay đổi gì không. Nhưng vẫn sai. chứ không phải là em thay số liệu là nó sai. Ngay ban đầu rồi/ thế em có nhời với bác. bác coi lại giúp em. Thanks bác!

Tôi hiểu rồi ---> Đã trả lời lại ở trên rồi
Tóm lại phải có dòng tiêu đề ở trên cùng ---> Xem code bài 12, tôi nghĩ là đúng rồi đấy (có công đoạn điền STT)
 
Upvote 0
Mình thấy code của a Ndu rất ok
Hay ý bạn là như thế này :
[GPECODE=vb]
Sub Test()
Dim mycell As Range
Dim i As Byte
Application.ScreenUpdating = 0
For Each mycell In [B3:AC3]
i = i + 1
mycell.Value = i
Next
With Sheet1.Range("B3:AC100")
.Offset(1).SpecialCells(2).Value = 1
.Sort .Rows(1), 2, , , , , , xlYes, , , xlLeftToRight
End With
[B3:AC3].ClearContents
Application.ScreenUpdating = 1
End Sub

[/GPECODE]

Nếu code trên đúng yêu cầu của bạn --> thì đây không phải là bài toán " Đảo Chiều " mà kiểu " Mirror " thì đúng hơn
Em test rồi của bác đúng mọi trường hợp số liệu của em. Copy đảo chiều rồi quy gí trị về 1. rất ok.
Thanks bác, ndu96081631 và forum GPE!!!
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom