Tạo Code copy tên tiêu đề sang ngang và xóa cột giữa

Liên hệ QC

thuytieu

Thành viên mới
Tham gia
1/12/10
Bài viết
47
Được thích
16
Kính gửi các anh chị và các bạn mình có file cần giúp đỡ .Nội dung cần giúp đỡ như tên chủ đề bài này .Chi tiết trong file đính kèm .Xim cám ơn các anh chị và các bạn.
 

File đính kèm

Kính gửi các anh chị và các bạn mình có file cần giúp đỡ .Nội dung cần giúp đỡ như tên chủ đề bài này .Chi tiết trong file đính kèm .Xim cám ơn các anh chị và các bạn.
Trong file bạn nói rằng:
Yêu cầu cần giúp đỡ
Copy từ B1 sang C1, D1, copy E1 sang F1, G1>> cứ như vậy đến hết tên tiêu đề
sau đó xóa cột C,cột F,cột I
cứ liên tục như vậy cho hết 250 cột luôn
Cám ơn các bạn và các anh chị nhìu lắm đó.
Tôi không hiểu tại sao copy B1 sang C1, sau đó lại xóa cột C ---> Vậy copy làm gì cho mất công?
 
Upvote 0
Ôi đúng là ngớ ngẩn nhỉ ,chắc tại hay hài nên mới có yêu cầu hài hước này đây.Đúng ra là sau khi copy sang phải rồi thì xóa 2 cột B và D (xóa hai cột 2 bên chỉ lấy cột C giữa thôi) HjHj cám ơn A NDU nhìu lắm .Em đọc xong mà cứ cười chết thui.Vậy nhờ A NDU và các bạn giúp Thúy nha .Cám ơn các bạn và các anh chị.Em nhờ Mod sửa tiêu đề lại là xóa 2 cột 2 bên chỉ lấy cột giữa thôi.Em xin lỗi vì lơ mơ wá (tâm hồn đang để ở nhà anh nào ấy ...hjhj)
 
Lần chỉnh sửa cuối:
Upvote 0
Ôi đúng là ngớ ngẩn nhỉ ,chắc tại hay hài nên mới có yêu cầu hài hước này đây.Đúng ra là sau khi copy sang phải rồi thì xóa 2 cột B và D (xóa hai cột 2 bên chỉ lấy cột C giữa thôi) HjHj cám ơn A NDU nhìu lắm .Em đọc xong mà cứ cười chết thui.Vậy nhờ A NDU và các bạn giúp Thúy nha .Cám ơn các bạn và các anh chị.Em nhờ Mod sửa tiêu đề lại là xóa 2 cột 2 bên chỉ lấy cột giữa thôi.Em xin lỗi vì lơ mơ wá (tâm hồn đang để ở nhà anh nào ấy ...hjhj)
Xài tạm code củ chuối này xem có được không.
Public Sub GPE_1()
Dim iI As Long
For iI = 3 To 252 Step 3
Cells(1, iI) = Cells(1, iI - 1)
Cells(1, iI - 1).Clear
Cells(1, iI + 1).Clear
Next
End Sub
 
Upvote 0
cám ơn bác Ba Tê nhiều nhưng ý em là xoá hẳn 2 cột 2 bên lun đó chứ ko phải xoá dữ liệu trên 2 cột đó .sau khi xóa là chì còn lại 3 cột ABC thôi.
 
Upvote 0
cám ơn bác Ba Tê nhiều nhưng ý em là xoá hẳn 2 cột 2 bên lun đó chứ ko phải xoá dữ liệu trên 2 cột đó .sau khi xóa là chì còn lại 3 cột ABC thôi.
Vậy thì bạn thay các câu lệnh:
Cells(1, iI - 1).Clear
Cells(1, iI + 1).Clear
bởi các câu lệnh:
Columns(iI - 1).Delete
Columns(iI + 1).Delete
 
Upvote 0
cám ơn bác Ba Tê nhiều nhưng ý em là xoá hẳn 2 cột 2 bên lun đó chứ ko phải xoá dữ liệu trên 2 cột đó .sau khi xóa là chì còn lại 3 cột ABC thôi.
Thay code trên thành cái này thử xem:
Public Sub GPE_2()

Application.ScreenUpdating = False
Dim iI As Long
For iI = 3 To 252 Step 3
Cells(1, iI) = Cells(1, iI - 1)
Cells(1, iI - 1).Clear
Cells(1, iI + 1).Clear
Next
For iI = 252 To 2 Step -1
If Cells(1, iI) = "" Then
Cells(1, iI).EntireColumn.Delete
End If
Next
End Sub
 
Upvote 0
Mắc chi mà phía trên thì Clear, rồi xuống phía dưới lại Delete cho cực vậy anh? Delete luôn ở phía trên có phải đỡ 1 vòng For phía dưới không?
Bạn có chạy thử code viết theo kiểu của Bạn chưa, không được đâu.
For đầu là chuyển tiêu đề về đúng cột có dữ liệu, xóa tiêu đề nằm sai cột.
For sau, cột nào không có tiêu đề cột thì xóa cả cột, chưa chuyển tiêu đề làm sao xóa cột được.
 
Upvote 0
Cám ơn bác Ba nha ,em thử theo a Nghiaphuc đúng là ko dc rùi .Code của bác Ba ok lun đó nhưng hơi chậm một tý .Bác có thề cho code khác chạy nhanh hơn dc ko .Em còn trẻ nên ham mê tốc độ lắm bác Ba à .Hjhj cám ơn các anh chị và các bác nhiệt tình giúp đỡ nhìu lắm.
 
Upvote 0
Bạn có chạy thử code viết theo kiểu của Bạn chưa, không được đâu.
For đầu là chuyển tiêu đề về đúng cột có dữ liệu, xóa tiêu đề nằm sai cột.
For sau, cột nào không có tiêu đề cột thì xóa cả cột, chưa chuyển tiêu đề làm sao xóa cột được.
Xin lỗi anh, em nhận định sai (do chưa thử).
@thuytieu: Thử code này xem sao nhé:
PHP:
Sub GPE_3()
    Dim i As Long
    i = 3
    Do While WorksheetFunction.CountA(Columns(i)) > 1
        Cells(1, i) = Cells(1, i - 1)
        Columns(i + 1).Delete
        Columns(i - 1).Delete
        i = i + 1
    Loop
End Sub
 
Upvote 0
Cám ơn bác Ba nha ,em thử theo a Nghiaphuc đúng là ko dc rùi .Code của bác Ba ok lun đó nhưng hơi chậm một tý .Bác có thề cho code khác chạy nhanh hơn dc ko .Em còn trẻ nên ham mê tốc độ lắm bác Ba à .Hjhj cám ơn các anh chị và các bác nhiệt tình giúp đỡ nhìu lắm.
Tôi mới tập tành VBA thôi, không biết cái nào nhanh hơn cái nào,
Thử viết lại bằng 1 lần For xem có nhanh hơn một chút nào không nhé.
PHP:
Public Sub GPE3()
Application.ScreenUpdating = False
Dim iI As Long
For iI = 252 To 2 Step -1
If Cells(2, iI) = "" Then
Cells(2, iI).EntireColumn.Delete
Else
Cells(1, iI) = Cells(1, iI - 1)
End If
Next
End Sub
 
Upvote 0
Ui sao vậy nè ! hai cái code của bác Ba và a nghiaphuc sau này sao cho chạy mà đơ lun(kết quả hổng như ý lun) .Ko bít A và bác Ba có test trước khi gửi lên hông mà lạ vậy ...hjhj .Mong bác Ba và A xem lại cho Thúy nha..
 
Upvote 0
Ui sao vậy nè ! hai cái code của bác Ba và a nghiaphuc sau này sao cho chạy mà đơ lun(kết quả hổng như ý lun) .Ko bít A và bác Ba có test trước khi gửi lên hông mà lạ vậy ...hjhj .Mong bác Ba và A xem lại cho Thúy nha..
File của Bạn có bị "khác" không, File mẫu của Bạn gởi nó chưa kịp "chớp" là xong rồi.
Thử xem!
 

File đính kèm

Upvote 0
Cái code này của bác Ba rất chi là lạ .để nguyên chạy code thì ok mà thêm vào vài tiêu đề nữa rồi chạy code thì kết quả cũng lạ lun.Cái code đầu tiên mà bác giúp em đó ,em thêm vào nhiều tiêu đề chạy ok lun (file rất ok nhưng chỉ có là hơi châm thui,vì file em vd nên ít ,chứ file thực nó nhiều tiêu đề lắm ...)thôi để khi nào bác Ba rảnh làm típ hen .Em dùng cái này dc rùi (nói vậy thui chứ nó chạy cũng ko chậm lắm đâu, chạy 70 km/h chứ có ít gì ) .cám ơn bác Ba nhìu lắm lun đó .
 
Upvote 0
Cái code này của bác Ba rất chi là lạ .để nguyên chạy code thì ok mà thêm vào vài tiêu đề nữa rồi chạy code thì kết quả cũng lạ lun.Cái code đầu tiên mà bác giúp em đó ,em thêm vào nhiều tiêu đề chạy ok lun (file rất ok nhưng chỉ có là hơi châm thui,vì file em vd nên ít ,chứ file thực nó nhiều tiêu đề lắm ...)thôi để khi nào bác Ba rảnh làm típ hen .Em dùng cái này dc rùi (nói vậy thui chứ nó chạy cũng ko chậm lắm đâu, chạy 70 km/h chứ có ít gì ) .cám ơn bác Ba nhìu lắm lun đó .
Dễ lắm, bạn cứ đưa dữ liệu thật giống với thực tế lên đây! Chúng ta chỉ quan tâm đến dòng 1 (là dòng tiêu đề) nên bạn chỉ cần đưa dữ liệu của dòng này đầy đủ là được rồi (dữ liệu từ dòng 2 trở xuống không cần thiết, chỉ cần đưa lên 1 vài dòng lên để minh họa)
 
Upvote 0
Cái code này của bác Ba rất chi là lạ .để nguyên chạy code thì ok mà thêm vào vài tiêu đề nữa rồi chạy code thì kết quả cũng lạ lun.Cái code đầu tiên mà bác giúp em đó ,em thêm vào nhiều tiêu đề chạy ok lun (file rất ok nhưng chỉ có là hơi châm thui,vì file em vd nên ít ,chứ file thực nó nhiều tiêu đề lắm ...)thôi để khi nào bác Ba rảnh làm típ hen .Em dùng cái này dc rùi (nói vậy thui chứ nó chạy cũng ko chậm lắm đâu, chạy 70 km/h chứ có ít gì ) .cám ơn bác Ba nhìu lắm lun đó .
Chắc là bị lệch dòng tiêu đề thôi nhưng do chủ topic giải thích lòng vòng nên mới thế. Tôi thấy dữ liệu xuất ra từ Fox thường bị như vậy. Bạn tải file này về test thử. Nếu giống như vậy thì lấy code trong file mà dùng.
 

File đính kèm

Upvote 0
Nói về tốc độ:
Code BaTe chậm hơn code NghiaPhuc. Lý do: BaTe phải xoá 1 số cột trống (khá nhiều) rồi mới tới cột cuối cùng có dữ liệu. Trong dữ liệu mẫu, phải xoá trên 240 cột không đáng xoá.

Nói về lỗi:
- Code Bate dựa vào cơ sở là cột chứa dữ liệu nghĩa là dòng 2 có dữ liệu. Rất có thể là dữ liệu thực bị trồng đâu đó trên dòng 2, nên xoá oan mấy cột.
- Code NghiaPhúc chưa thấy chỗ nào có thể sinh ra lỗi, trừ khi dữ liệu không nhất quán 2 cột trống 1 cột có mà 3 trốn 1 có hoặc 1 trống 1 có.
 
Lần chỉnh sửa cuối:
Upvote 0
Em thử lại code A nghiaphuc thì thấy ko lỗi .Chắc tại máy ở cty chạy nhiều ứng dụng nên gây lỗi hay sao ý.Nay test lại thấy nhanh ấy chứ ,code a huuthang_bd cũng chuẩn nữa.Vậy là phân tích của bác ptm0412 rất chính xác Tiếc là em ko đem file thử về nhà test dc và ko up lên cho các bác cùng các anh chị test dc.Nhưng kết wả đã đáp ứng dc yc của em rùi .Ngày mai là em đi chơi lễ 5 ngày rùi .Đi chơi về rùi tính tiếp những phát sinh sau này nhờ các bác cùng các anh chị giúp em típ vậy.Em chúc các bác cùng các anh chị nghỉ lễ vui vẻ ,đi chơi an toàn và các bác cùng các anh nhớ đừng uống wá chén ,wá ly mà làm cho các phu nhân bùn ,giận là hổng có dc à nha.
 
Upvote 0
Web KT

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

Back
Top Bottom