Code về bỏ những ô trống!

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

ThuNghi

Hãy cho rồi sẽ nhận!
Thành viên đã mất
Tham gia
16/8/06
Bài viết
3,808
Được thích
4,449
Nhờ các bạn viết 1 code để bỏ những ô trống trong sh của file đính kèm.
Cũng khó diễn đạt nên mong các bạn xem file, có những yêu cầu trong đó.
Xin cám ơn!
Cụ thể như sau
Từ
SHTK---A-------B
1111---1--- blank
1111--- blank ---2

thành
SHTK---A----B
1111---1----2
 

File đính kèm

Xem thí dụ và yêu cầu thì có lẽ đây là 1 kết quả trung gian của 1 quá trình xử lý khác, vì dữ liệu kể cả nguồn và đích đều không giống ai. Vậy ThuNghi đưa hẳn bài toán lớn lên, chứ trung gian thế này xử lý rất khó, mà rất có thể sẽ có 1 phương án khác không qua cái trung gian này.
 
Upvote 0
Xem thí dụ và yêu cầu thì có lẽ đây là 1 kết quả trung gian của 1 quá trình xử lý khác, vì dữ liệu kể cả nguồn và đích đều không giống ai. Vậy ThuNghi đưa hẳn bài toán lớn lên, chứ trung gian thế này xử lý rất khó, mà rất có thể sẽ có 1 phương án khác không qua cái trung gian này.
Yêu cầu của em là muốn lấy hết toàn bộ sổ tổng phát sinh của từng sổ cái theo từng TK đối ứng.
Nhưng có nhiều ô trống => dài và kgông đẹp nên em muốn bỏ bớt.
Em làm file vd để cho những bạn không làm kế toán có thể làm giúp.
Còn quá trình xử lý ra cái này thực chất kg giống ai nên cũng ngại đưa, sợ rằng nhìn thấy ngợp.
 
Upvote 0
Bị các con số 0 cột D nó quấy quá, nên chỉ có vầy, tham khảo nha

PHP:
Option Explicit
Sub DonSoLieu()
 Dim WF, Clls As Range, Rng As Range, sRng As Range, Cls As Range
 Dim Col As Byte, Rws As Long, Rw1 As Long
 
 Set Rng = [B2].CurrentRegion
 Col = Rng.Find(What:="*", after:=Rng.Cells(1), LookIn:=-4123, Lookat:=xlPart _
   , SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
 Set WF = Application.WorksheetFunction
 For Each Clls In Range([A3], [A65500].End(xlUp))
   If Clls.Value <> "Cong PS" Then
      Set Rng = Clls.Offset(, 1).Resize(, Col - 1)
      Set sRng = Rng.Find("DK", , , xlWhole)
      If sRng Is Nothing Then
         If WF.CountBlank(Rng) < 4 Then
            For Each Cls In Rng
               If Cls.Value <> "" And Cls.Column < 4 Then ''
                  Rw1 = Cls.End(xlUp).Row + 1
                  Cells(IIf(Rw1 > Rws, Rw1, Rws), Cls.Column).Value = Cls.Value
                  Cls.Value = ""
               ElseIf Cls.Value <> "" And Cls.Column = 4 Then
                  If WF.CountBlank(Rng.Offset(-1)) = 4 Then _
                     Rng.Offset(-1).EntireRow.Delete
               End If
            Next Cls
         Else
            Rng.Interior.ColorIndex = 38
         End If
      Else
         Rws = sRng.Row + 1
      End If
   Else
   End If
 Next Clls
End Sub
 
Upvote 0
Cám ơn Bác.
Nó dồn có 1 phần theo cong PS đầu tiên, và nó bỏ mất cột B là TKNo
Những phần kế tiếp nó kg làm.
 
Upvote 0
Bận quá giờ mới xong được gửi Thu Nghi tham khảo nha
 

File đính kèm

Upvote 0
Xin lỗi tranh thủ buổi trưa viết chưa soát hết, Thu Nghi dùng File này chuẩn hơn nè.
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom