Cần viết Code dạng Scripting.Dictionary (Chọn ra danh sách các số không trùng nhau) (1 người xem)

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

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
934
Được thích
240
Giới tính
Nam
Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Tôi có một bảng tính như vầy:

GZDDIfH.png


Từ cột B tôi chọn ra danh sách các số không trùng nhau và dán vào cột D như vầy:

N893Sax.png


=> Vấn đề được đặt ra ở đây là: Có Code nào dạng như vầy:
PHP:
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
...

để thực hiện công việc trên hay không?
Mong các Anh chị và các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
 

File đính kèm

Lần chỉnh sửa cuối:
Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Tôi có một bảng tính như vầy:
Từ cột B tôi chọn ra danh sách các số không trùng nhau và dán vào cột D như vầy:

=> Vấn đề được đặt ra ở là: Có Code nào dạng như vầy:
PHP:
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
...

để thực hiện công việc trên hay không?
Mong các Anh chị và các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.


PHP:
Public Sub GPE()
Dim Rng()
Dim ARR()
Dim Temp As String
Dim i As Long
Dim Dem As Long
Rng = Sheet1.Range("B3:B" & Sheet1.Range("B60000").End(xlUp).Row)
ReDim ARR(1 To UBound(Rng, 1), 1 To 1) 
   Temp = ""    
    For i = 1 To UBound(Rng, 1) 
       If (InStr(Temp, Rng(i, 1)) = 0) Then   
          Temp = Temp & "," & Rng(i, 1)       
          Dem = Dem + 1            
         ARR(Dem, 1) = Rng(i, 1)
     End If
  Next  Sheet1.Range("E3").Resize(Dem, 1) = ARR
End Sub

Cứ từ từ tham khảo và tự thêm bớt các điều khoản phụ đi
 
Lần chỉnh sửa cuối:
Upvote 0
Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với
Mã:
Sub Dic()
Dim Sarr, Arr, i As Long
Sarr = Range([B3], [B65000].End(xlUp)).Resize(, 1).Value2
ReDim Arr(1 To UBound(Sarr, 1), 1 To 1)
With CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Sarr, 1)
        If Not .exists(Sarr(i, 1)) Then
            .Add Sarr(i, 1), k
            k = k + 1
            Arr(k, 1) = Sarr(i, 1)
        End If
    Next
End With
    [D3:D65000].ClearContents
    [D3].Resize(UBound(Sarr, 1), 1).Value = Arr
    [D3].Resize(UBound(Sarr, 1), 1).Sort key1:=[D3], order1:=xlAscending
End Sub
Bạn thử đoạn này xem sao
 
Upvote 0
PHP:
Public Sub GPE()
Dim Rng()
Dim ARR()
Dim Temp As String
Dim i As Long
Dim Dem As Long
Rng = Sheet1.Range("B3:B" & Sheet1.Range("B60000").End(xlUp).Row)
ReDim ARR(1 To UBound(Rng, 1), 1 To 1) 
   Temp = ""    
    For i = 1 To UBound(Rng, 1) 
       If (InStr(Temp, Rng(i, 1)) = 0) Then   
          Temp = Temp & "," & Rng(i, 1)       
          Dem = Dem + 1            
         ARR(Dem, 1) = Rng(i, 1)
     End If
  Next  Sheet1.Range("E3").Resize(Dem, 1) = ARR
End Sub

Cứ từ từ tham khảo và tự thêm bớt các điều khoản phụ đi
Cảm ơn bạn. Tuy nhiên, tôi muốn học thêm dạng Code như vầy:
PHP:
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Không biết là bạn có Code nào dạng đó không?
 
Upvote 0
PHP:
Public Sub GPE()
Dim Rng()
Dim ARR()
Dim Temp As String
Dim i As Long
Dim Dem As Long
Rng = Sheet1.Range("B3:B" & Sheet1.Range("B60000").End(xlUp).Row)
ReDim ARR(1 To UBound(Rng, 1), 1 To 1) 
   Temp = ""    
    For i = 1 To UBound(Rng, 1) 
       If (InStr(Temp, Rng(i, 1)) = 0) Then   
          Temp = Temp & "," & Rng(i, 1)       
          Dem = Dem + 1            
         ARR(Dem, 1) = Rng(i, 1)
     End If
  Next  Sheet1.Range("E3").Resize(Dem, 1) = ARR
End Sub

Cứ từ từ tham khảo và tự thêm bớt các điều khoản phụ đi

Code này có vẻ không ổn : với dữ liệu kiểu XXXYZT và XXX ,X,XX sẽ coi là 1
 
Upvote 0
Cảm ơn bạn. Tuy nhiên, tôi muốn học thêm dạng Code như vầy:
PHP:
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Không biết là bạn có Code nào dạng đó không?
Mã:
Sub Dic()
Dim Sarr, Arr, i As Long, Dic As Object
Sarr = Range([B3], [B65000].End(xlUp)).Resize(, 1).Value2
ReDim Arr(1 To UBound(Sarr, 1), 1 To 1)
Set Dic = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Sarr, 1)
        If Not Dic.exists(Sarr(i, 1)) Then
            Dic.Add Sarr(i, 1), k
            k = k + 1
            Arr(k, 1) = Sarr(i, 1)
        End If
    Next
    [D3:D65000].ClearContents
    [D3].Resize(UBound(Sarr, 1), 1).Value = Arr
    [D3].Resize(UBound(Sarr, 1), 1).Sort key1:=[D3], order1:=xlAscending
Set Dic = Nothing
End Sub
Anh thử thế này xem sao nhé
 
Upvote 0
Cảm ơn bạn. Tuy nhiên, tôi muốn học thêm dạng Code như vầy:
PHP:
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Không biết là bạn có Code nào dạng đó không?

thì hướng đi giải thuật có thể tham khảo Code như bài #3 của Comet_1701 ,
Tuy nhiên nên thêm điều kiện kiểm tra thêm giá trị rỗng, hay ta nên viết thẳng [D3].resize(k) thay vì viết [D3].resize(Ubound()...),......
 
Upvote 0
thì hướng đi giải thuật có thể tham khảo Code như bài #3 của Comet_1701 ,
Tuy nhiên nên thêm điều kiện kiểm tra thêm giá trị rỗng, hay ta nên viết thẳng [D3].resize(k) thay vì viết [D3].resize(Ubound()...),......
Mã:
Sub Dic()
Dim Sarr, Arr, i As Long, Dic As Object, Tmp As String
Sarr = Range([B3], [B65000].End(xlUp)).Resize(, 1).Value2
ReDim Arr(1 To UBound(Sarr, 1), 1 To 1)
Set Dic = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Sarr, 1)
        Tmp = Sarr(i, 1)
        If Tmp <> 0 Then
                If Not Dic.exists(Tmp) Then
                    Dic.Add Tmp, k
                    k = k + 1
                    Arr(k, 1) = Sarr(i, 1)
                End If
        End If
    Next
    [D3:D65000].ClearContents
    [D3].Resize(k, 1).Value = Arr
    [D3].Resize(k, 1).Sort key1:=[D3], order1:=xlAscending
Set Dic = Nothing
End Sub
Chắc ý anh Hùng là vậy nè bạn hung2414
 
Upvote 0
Code này có vẻ không ổn : với dữ liệu kiểu XXXYZT và XXX ,X,XX sẽ coi là 1
với yêu cầu của bài này thì đúng sẽ luôn luôn ra đáp số.Tôi có kèm theo " tự thêm bớt các điều khoản phụ đi" nên tác giả sẽ tự thêm vào. cái này tôi không dùng DIC để giải quyết
 
Lần chỉnh sửa cuối:
Upvote 0
Mình thì khoái chơi kiểu xúc tích ngắn gọn
PHP:
Sub DicTo_DicNho()
Dim It, Arr()
Arr = [B3:B1000].Value
With CreateObject("Scripting.Dictionary")
    For Each It In Arr
         If It <> "" Then .Item(It) = ""
    Next
    [I3].Resize(.Count) = Application.Transpose(.keys)
End With
End Sub
 
Upvote 0
Mã:
Sub Dic()
Dim Sarr, Arr, i As Long, Dic As Object, Tmp As String
Sarr = Range([B3], [B65000].End(xlUp)).Resize(, 1).Value2
ReDim Arr(1 To UBound(Sarr, 1), 1 To 1)
Set Dic = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Sarr, 1)
        Tmp = Sarr(i, 1)
        If Tmp <> 0 Then
                If Not Dic.exists(Tmp) Then
                    Dic.Add Tmp, k
                    k = k + 1
                    Arr(k, 1) = Sarr(i, 1)
                End If
        End If
    Next
    [D3:D65000].ClearContents
    [D3].Resize(k, 1).Value = Arr
    [D3].Resize(k, 1).Sort key1:=[D3], order1:=xlAscending
Set Dic = Nothing
End Sub
Chắc ý anh Hùng là vậy nè bạn hung2414


chỗ đo đỏ tôi có cảm giác vẫn chưa hơp lý :
Mã:
Sub Dic()
Dim Sarr, Arr, i As Long, Dic As Object, [COLOR=#ff0000][B]Tmp As String[/B][/COLOR]
Sarr = Range([B3], [B65000].End(xlUp)).Resize(, 1).Value2
ReDim Arr(1 To UBound(Sarr, 1), 1 To 1)
Set Dic = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Sarr, 1)
        Tmp = Sarr(i, 1)
       [COLOR=#ff0000][B] If Tmp <> 0[/B][/COLOR] Then
                If Not Dic.exists(Tmp) Then
                    Dic.Add Tmp, k
                    k = k + 1
                    Arr(k, 1) = Sarr(i, 1)
                End If
        End If
    Next
    [D3:D65000].ClearContents
    [D3].Resize(k, 1).Value = Arr
    [D3].Resize(k, 1).Sort key1:=[D3], order1:=xlAscending
Set Dic = Nothing
End Sub
 
Upvote 0
chỗ đo đỏ tôi có cảm giác vẫn chưa hơp lý :
Mã:
Sub Dic()
Dim Sarr, Arr, i As Long, Dic As Object, [COLOR=#ff0000][B]Tmp As String[/B][/COLOR]
Sarr = Range([B3], [B65000].End(xlUp)).Resize(, 1).Value2
ReDim Arr(1 To UBound(Sarr, 1), 1 To 1)
Set Dic = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Sarr, 1)
        Tmp = Sarr(i, 1)
       [COLOR=#ff0000][B] If Tmp <> 0[/B][/COLOR] Then
                If Not Dic.exists(Tmp) Then
                    Dic.Add Tmp, k
                    k = k + 1
                    Arr(k, 1) = Sarr(i, 1)
                End If
        End If
    Next
    [D3:D65000].ClearContents
    [D3].Resize(k, 1).Value = Arr
    [D3].Resize(k, 1).Sort key1:=[D3], order1:=xlAscending
Set Dic = Nothing
End Sub
If Tmp <> 0
Thay bằng <>"" có vẻ ổn hơn đúng ko anh, Hoặc Tmp(), có thể kết hợp với len nữa
 
Lần chỉnh sửa cuối:
Upvote 0
If Tmp <> 0
Thay bằng <>"" có vẻ ổn hơn đúng ko anh, Hoặc Tmp(), có thể kết hợp với len nữa

bạn sửa lại thành như sau ngắn gọn và dễ hiểu hơn nè
PHP:
Sub Dic()
Dim Sarr, Arr, i As Long, Dic As Object, k As Long
Sarr = Range([B3], [B65000].End(xlUp)).Resize(, 1).Value2
ReDim Arr(1 To UBound(Sarr, 1), 1 To 1)
Set Dic = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Sarr, 1)
        If Not Dic.exists(Sarr(i, 1)) Then
            Dic.Add Sarr(i, 1), k
            If Sarr(i, 1) <> "" Then
                k = k + 1
                Arr(k, 1) = Sarr(i, 1)
             End If
        End If
    Next
    [f3:f65000].ClearContents
    [f3].Resize(k, 1).Value = Arr
    [f3].Resize(k, 1).Sort key1:=[f3], order1:=xlAscending
Set Dic = Nothing
End Sub
 
Upvote 0
Cảm ơn các bạn đã chỉ giáo, dựa vào các bài viết ở trên tôi vừa nghĩ thêm một phương án:
[GPECODE=vb]Option Explicit
Sub Dicto()
Dim Dic As Object
Dim rng As Range
Set Dic = CreateObject("Scripting.Dictionary")
For Each rng In Range([B3], [B1000])
If rng <> "" Then
If Not Dic.exists(rng.Value) Then
Dic.Add rng.Value, Empty
End If
End If
Next
[E3].Resize(Dic.Count) = Application.Transpose(Dic.keys)
Set Dic = Nothing
End Sub[/GPECODE]
 
Upvote 0
Cảm ơn các bạn đã chỉ giáo, dựa vào các bài viết ở trên tôi vừa nghĩ thêm một phương án:
[GPECODE=vb]Option Explicit
Sub Dicto()
Dim Dic As Object
Dim rng As Range
Set Dic = CreateObject("Scripting.Dictionary")
For Each rng In Range([B3], [B1000])
If rng <> "" Then
If Not Dic.exists(rng.Value) Then
Dic.Add rng.Value, Empty
End If
End If
Next
[E3].Resize(Dic.Count) = Application.Transpose(Dic.keys)
Set Dic = Nothing
End Sub[/GPECODE]
Thực ra không khác của Kiều Mạnh đâu, chỉ là cách viết khác của Dic thôi: Đêm xong rồi chuyển mảng
 
Upvote 0
Khác nhau chứ, cách của bạn Hùng sẽ chậm hơn do duyệt từng ô.
đúng rồi anh, em nói về cách viết thôi, của Mạnh Arr là mảng, còn của bạn Hùng như anh nói là duyệt qua từng ô
Mã:
[COLOR=#0000BB][FONT=monospace]Arr [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]B3[/FONT][/COLOR][COLOR=#007700][FONT=monospace]:[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]B1000[/FONT][/COLOR][COLOR=#007700][FONT=monospace]].[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Value
[/FONT][/COLOR][COLOR=#007700][FONT=monospace]
    For [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]Each It In Arr[/FONT][/COLOR]
Mình cũng đang định nói về tốc độ , cái trên là mảng đó nên nhanh hơn cách của hùng 2412
 
Lần chỉnh sửa cuối:
Upvote 0
Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Tôi có một bảng tính như vầy:

GZDDIfH.png


Từ cột B tôi chọn ra danh sách các số không trùng nhau và dán vào cột D như vầy:

N893Sax.png


=> Vấn đề được đặt ra ở đây là: Có Code nào dạng như vầy:
PHP:
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
...

để thực hiện công việc trên hay không?
Mong các Anh chị và các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
Dictionary trên diễn đàn có khá nhiều, chẳng hiểu chủ thớt hỏi Dictionary là gì hay là nhờ làm hộ không biết nữa.
 
Upvote 0
Dictionary trên diễn đàn có khá nhiều, chẳng hiểu chủ thớt hỏi Dictionary là gì hay là nhờ làm hộ không biết nữa.
Tôi muốn học về Dictionary nên mới hỏi thôi ạ => Đúng là Dictionary trên diễn đàn khá nhiều => Nhưng mà choáng ngợp quá (Toàn Code khủng với đề bài phức tạp).
 
Upvote 0
Tôi thấy chả có gì khủng hết DIC nó làm hết rồi,bạn có việc lấy ra mà xài. Khủng gì đâu mà khủng
 
Upvote 0
Tôi muốn học về Dictionary nên mới hỏi thôi ạ => Đúng là Dictionary trên diễn đàn khá nhiều => Nhưng mà choáng ngợp quá (Toàn Code khủng với đề bài phức tạp).

Lọc duy nhất bằng Dictionary là bài toán được hỏi và trả không phải là ít, nếu với cá nhân tôi, với bài này, chắc có lẽ là sẽ đề nghị là :" Nhờ các thành viên diễn đàn giải hộ bằng Dict " sẽ thẳng thắn hơn.
 
Upvote 0
Tôi thấy chả có gì khủng hết DIC nó làm hết rồi,bạn có việc lấy ra mà xài. Khủng gì đâu mà khủng
Việc lấy ra mà xài thì cũng phải sửa Code sao cho phù hợp với File của mình đang làm => Cái này phải nghĩ => Thế tôi mới tìm hiểu từng câu lệnh xem thế nào để mà áp dụng vào bảng tính của mình (Mà cái này nhìn Code trên diễn đàn để hiểu thì không dễ đâu ạ).
 
Upvote 0
Lọc duy nhất bằng Dictionary là bài toán được hỏi và trả không phải là ít, nếu với cá nhân tôi, với bài này, chắc có lẽ là sẽ đề nghị là :" Nhờ các thành viên diễn đàn giải hộ bằng Dict " sẽ thẳng thắn hơn.
Nếu mà để giải bài này thì tôi đã dùng nhiều phương án khác, chỉ là để tôi tìm hiểu về Dictionary thôi ạ.
 
Upvote 0
Nếu mà để giải bài này thì tôi đã dùng nhiều phương án khác, chỉ là để tôi tìm hiểu về Dictionary thôi ạ.
Phương án khác cũng chả biết thế nào, chỉ thấy phương án của bạn theo bài ví dụ này
Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Tôi có một bảng tính như vầy:

GZDDIfH.png


Từ cột B tôi chọn ra danh sách các số không trùng nhau và dán vào cột D như vầy:

N893Sax.png


=> Vấn đề được đặt ra ở đây là: Có Code nào dạng như vầy:
PHP:
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
...

để thực hiện công việc trên hay không?
Mong các Anh chị và các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
Cho kết quả là hơi lạ

Vì hình như kết quả là
[TABLE="width: 109"]
[TR]
[TD]30169[/TD]
[/TR]
[TR]
[TD]30195[/TD]
[/TR]
[TR]
[TD]30357[/TD]
[/TR]
[TR]
[TD]30001[/TD]
[/TR]
[/TABLE]
---
(Tính bẳng countif)
 
Upvote 0
Phương án khác cũng chả biết thế nào, chỉ thấy phương án của bạn theo bài ví dụ này
Cho kết quả là hơi lạ

Vì hình như kết quả là
[TABLE="width: 109"]
[TR]
[TD]30169[/TD]
[/TR]
[TR]
[TD]30195[/TD]
[/TR]
[TR]
[TD]30357[/TD]
[/TR]
[TR]
[TD]30001[/TD]
[/TR]
[/TABLE]
---
(Tính bẳng countif)
Kết quả ở cột D là tôi tự tay đánh vào (Chẳng qua phương án nào cả) thôi mà.
 
Upvote 0
Kết quả ở cột D là tôi tự tay đánh vào (Chẳng qua phương án nào cả) thôi mà.
Không hiểu lắm, vậy kết quả ví dụ trong file mà bạn đưa lên là đúng theo yêu cầu của bạn hay không vậy.
( Vì muốn kiểm chứng kết quả tính bằng countif ở bài trước )
 
Upvote 0
Có lẽ chủ thớt thiếu trách nhiệm khi đưa file đính kèm lên cho cộng đồng giải quyết.
Tôi vẫn khẳng định kết quả theo yêu cầu viết trong đầu bài là
[TABLE="width: 109"]
[TR]
[TD]30169[/TD]
[/TR]
[TR]
[TD]30195[/TD]
[/TR]
[TR]
[TD]30357[/TD]
[/TR]
[TR]
[TD]30001[/TD]
[/TR]
[/TABLE]
 
Upvote 0
Có lẽ chủ thớt thiếu trách nhiệm khi đưa file đính kèm lên cho cộng đồng giải quyết.
Tôi vẫn khẳng định kết quả theo yêu cầu viết trong đầu bài là
[TABLE="width: 109"]
[TR]
[TD]30169[/TD]
[/TR]
[TR]
[TD]30195[/TD]
[/TR]
[TR]
[TD]30357[/TD]
[/TR]
[TR]
[TD]30001[/TD]
[/TR]
[/TABLE]
Đầu bài là Từ cột B tôi chọn ra danh sách các số không trùng nhau và dán vào cột D (Có hình minh họa kèm theo) (Trong các số trùng nhau thì vẫn lấy số đó nhưng chỉ lấy 1 thôi ạ, như bạn nói thì 4 số mà bạn đưa là không bao gồm các số trùng nhau.)
Note: Đúng là tôi đã nói thiếu, đáng ra tôi phải nói là Từ cột B tôi chọn ra danh sách các số không trùng nhau (Bao gồm cả số trùng nhau nhưng chỉ lấy 1) và dán vào cột D => Xin lỗi bạn nhé.
 
Upvote 0
Đầu bài là Từ cột B tôi chọn ra danh sách các số không trùng nhau và dán vào cột D (Có hình minh họa kèm theo) (Trong các số trùng nhau thì vẫn lấy số đó nhưng chỉ lấy 1 thôi ạ, như bạn nói thì 4 số mà bạn đưa là không bao gồm các số trùng nhau.)
Note: Đúng là tôi đã nói thiếu, đáng ra tôi phải nói là Từ cột B tôi chọn ra danh sách các số không trùng nhau (Bao gồm cả số trùng nhau nhưng chỉ lấy 1) và dán vào cột D => Xin lỗi bạn nhé.
Đúng hay sai là do bạn đưa bài và có lẽ là bạn nên xin lỗi cộng đồng đã viết code cho bạn thì đúng hơn vì tôi cũng chả viết code nào cho thớt này cả.
 
Upvote 0
Anh Hung cho em hỏi cuối cùng anh đã dùng code ntn ah? Anh cho em file hay paste code giùm em nha?
 
Upvote 0
Mình thì khoái chơi kiểu xúc tích ngắn gọn
Mã:
Sub DicTo_DicNho()
Dim It, Arr()
Arr = [B3:B1000].Value
With CreateObject("Scripting.Dictionary")
    For Each It In Arr
          [COLOR=#ff0000][B]If It <> "" Then[/B][/COLOR] .Item(It) = ""
    Next
    [I3].Resize(.Count) = Application.Transpose(.keys)
End With
End Sub

Tuy có súc tích ngắn gọn nhưng cái chiỗ tô đậm chưa hoàn toàn hiệu quả.
Lý do: mỗi ô đều phải xét trị rỗng. Nếu có 100 dòng mà chỉ 1 vài trị rỗng thì thế hơi phí.
Giải pháp: cứ để nó add tuốt luôt hết vào. Xong xuôi, cứ trị nào không muốn giữ thì remove
.Remove ""
(nhưng nếu có 100 dòng mà hết 20 rỗng thì phương pháp xét trị rỗng lại bắt đầu hiệu quả)
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom