Hàm xóa bỏ các khoảng trắng

hocketoan

New Member
Hội viên mới
Hàm sau sẽ cắt bớt các khoảng trống dư thừa trong 1 chuỗi

Private Function PreventDuplicateSpaces(Word)

Dim i, WordLength, Character, LastCharacter, NewWord
On Error GoTo ErrorHandler
WordLength = Len(Word)
For i = 1 To WordLength
Character = Mid(Word, i, 1)
If LastCharacter = " " And Character = " " Then
Else
NewWord = NewWord & Character
LastCharacter = Character
End If
Next i
PreventDuplicateSpaces = Trim(NewWord)
Exit Function
ErrorHandler:

End Function

(Theo http://vb-helper.com)
 
Cần gì phải thế. Chỉ cần dùng hàm Replace là được thôi mà:

Replace (chuỗi gốc, chuỗi tìm, chuỗi thay)

VD:
Dim mvar As String
mvar = Replace("aaa aaa aa aa aa"," ","")
Debug.Print mvar

Kết quả sẽ có là: aaaaaaaaaaaa

Đúng ý đồ rồi !!!
 
Dear phatnq2002,

Bạn hiểu lầm hàm này rồi

VD bạn có đọan text : Dien dan dan ke toan ( Các khỏang trắng dư thừa)

Hàm này sẽ trà về : Dien dan dan ke toan

Các khỏang trắng dư thừa sẽ bị cắt đi

Thân
 
=TRIM(text)
......................................
 
Sửa lần cuối:
Chời ui XYZ giỏi về hàm text quá, nhưng thái độ thì có vẻ không hay chút nào (Thế nào là VBA begginer ? Chắc XYZ mới sinh ra là đã thành cao thủ rồi (Mà không biết có thật là cao thủ không?! ... Hic hic ).

Hàm trim rất hay, nhưng nó bị giới hạn trong function của excel, đặt một vì dụ bạn đang ở table của access và xảy ra lỗi double của khỏang trắng hàm trim sao giúp được ?!

Có rất nhiều cách để giải quyết một vấn đề. Đừng khen "ctr + C" hay hơn "Edit/Copy" nhé.

Mong XYZ có những bài viết thật hay đóng góp cho diễn đàn.

:)
 
Sửa lần cuối:
Thanks ********* nhiều về đọan code nhé. Hay lắm
 
Sửa lần cuối:
............................................................
 
Sửa lần cuối:
1)
XYZ nói:
he he, anh chỉ nói các chú là VBA beginner thôi chứ anh có nói anh không phải là VBA beginner đâu :D

XYZ à nói thì dễ lắm, nếu được thì làm gì có vẻ thiết thực hơn đi.

2)

[quote =xyz] vậy ra không phải cậu đang hướng dẩn mọi người làm việc trên Excel àh? Hay trên cả bộ Office [/quote]

XYZ hình như học cách đánh văn bản chỉ để dùng gõ văn bản trong word thôi thì phải.



3)

[QUOTE = XYZ] Anh thấy ở đây dám lập ra box topic nâng cao chắc không phải chỉ để đi copy & paste bài chổ khác tới. Cao thủ của box này đâu rồi, kêu ra mà viết bài. [/QUOTE]

Có rất nhiều cách để đóng góp cho cộng đồng và chia sẻ kiến thức; học những cái hay của người khác là một trong những cách đó. XYZ đừng bỏ ra 15 năm để viết ra cái hàm mà người ta đã phát minh ra từ lâu rồi. Nói vậy ko biết XYZ có hiểu được không???
:eek:

[quote = xyz] Anh chỉ vào đây nhắn các chú mấy tiếng về tinh thần học hỏi thôi. [/quote]

[quote = xyz] Anh lượn đây và anh cũng sẽ không quay lại đâu. [/quote]


Pó tứ chi

:confused:
 
XYZ nói:
Anh lượn đây và anh cũng sẽ không quay lại đâu..

Lại thêm một con sâu làm rầu nồi canh, ********* ơi, hi vọng bạn sẽ tiếp tục đóng góp cho diễn đàn ngày một phong phú.:)
 
Simon nói:
Dear phatnq2002,

Bạn hiểu lầm hàm này rồi

VD bạn có đọan text : Dien dan dan ke toan ( Các khỏang trắng dư thừa)

Hàm này sẽ trà về : Dien dan dan ke toan

Các khỏang trắng dư thừa sẽ bị cắt đi

Thân

Vẫn có thể dùng hàm Replace để làm theo ý bạn:
VD:
Public Function GiGiDo(mst As String) As String
Dim mvar As String
mvar = Trim(mst)
Do While InStr(mvar, Space(2) <> 0
mvar = Replace(mvar,Space(2),Space(1))
Loop
GiGIDo = mvar
End Function

Coi thử hàm này bằng lệnh dưới đây:
Debug.Print GiGiDo(" aaa aa aa aaaaaa ")
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top