Hàm tạo slug từ 1 chuỗi (1 người xem)

Liên hệ QC

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

Hoksilato

Thành viên mới
Tham gia
4/3/08
Bài viết
5
Được thích
0
Chào mọi người,

Hiện tại mình có nhu cầu chuyển 1 chuỗi bất kỳ thành dạng "text-text-...".

Ví dụ: Chuỗi nhập vào là "Hello World" thì khi sử dụng hàm sẽ thành "hello-world".

Hiện tại search google thì tìm được 1 hàm bên dưới, nhưng khi sử dụng thì đc thông báo là Syntax error ở dùng khai báo Function.

PHP:
Function CleanPostName(ByVal sPostName As String, Optional ByVal bCreateURL As Boolean = False) As String       
    
    Dim idx As Long    
    Dim sNew As String       

    For idx = 1 To Len(sPostName)        
        Select Case Asc(Mid$(sPostName, idx, 1))            
            Case 48 To 57 ‘leave numbers               
                sNew = sNew & Mid$(sPostName, idx, 1)            
            Case 65 To 90, 97 To 122 ‘convert letters to lowercase               
                 sNew = sNew & LCase$(Mid$(sPostName, idx, 1))            
            Case 45 ‘leave dashes – no two dashes               
                 If idx > 1 And Right$(sNew, 1) <> Chr$(45) Then                    
                     sNew = sNew & Mid$(sPostName, idx, 1)                
                 End If            
            Case 32 ‘convert spaces to dashes – multiple spaces = one dash               
                 If idx > 1 And Right$(sNew, 1) <> Chr$(45) Then                    
                     sNew = sNew & Chr$(45)                
                 End If        
        End Select    
    Next idx           

    If bCreateURL Then        
        sNew = “http://www.paragonconstructioninc.com/projects/” & sNew & “/”    
    End If       

    CleanPostName = sNew       
End Function

Nhờ mọi người giải thích giúp mình là code này hiện đang bị lỗi gì.

Cám ơn mọi người nhiều.

P/S: mình không chuyên về excel cũng như VB, nhưng do đang có nhu cầu nên cần sử dụng. Có gì nhờ mọi người hướng dẫn giúp.
 
Lần chỉnh sửa cuối:
Chào mọi người,

Hiện tại mình có nhu cầu chuyển 1 chuỗi bất kỳ thành dạng "text-text-...".

Ví dụ: Chuỗi nhập vào là "Hello World" thì khi sử dụng hàm sẽ thành "hello-world".

Hiện tại search google thì tìm được 1 hàm bên dưới, nhưng khi sử dụng thì đc thông báo là Syntax error ở dùng khai báo Function.

PHP:
  [/QUOTE][QUOTE][/QUOTE]

hình như đâu cần phúc tạp vậy bạn?
ví dụ A1 là "hello word"
gõ cthức
[code]
B1==SUBSTITUTE(A1," ","_") [/code]
 
Upvote 0
Cám ơn bạn, tại code trên nó còn xử lý 1 số trường hợp như thay nhiều khoảng trắng chỉ với 1 gạch nối cũng như loại những ký tự đặc biệt, ngoài ra mình còn định thêm chức năng chuyển đổi tiếng Việt có dấu thành không dấu.

Với mình cũng đang thử tìm hiểu không biết hàm trên sai chỗ nào.
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn bạn, tại code trên nó còn xử lý 1 số trường hợp như thay nhiều khoảng trắng chỉ với 1 gạch nối cũng như loại những ký tự đặc biệt, ngoài ra mình còn định thêm chức năng chuyển đổi tiếng Việt có dấu thành không dấu.

Với mình cũng đang thử tìm hiểu không biết hàm trên sai chỗ nào.
sửa lại như vậy :
Mã:
Function CleanPostName(ByVal sPostName As String, Optional ByVal bCreateURL As Boolean = False) As String
    
    Dim idx As Long
    Dim sNew As String


    For idx = 1 To Len(sPostName)
        Select Case Asc(Mid$(sPostName, idx, 1))
            Case 48 To 57  'leave numbers
                sNew = sNew & Mid$(sPostName, idx, 1)
            Case 65 To 90, 97 To 122 'convert letters to lowercase
                 sNew = sNew & LCase$(Mid$(sPostName, idx, 1))
            Case 45 'leave dashes – no two dashes
                 If idx > 1 And Right$(sNew, 1) <> Chr$(45) Then
                     sNew = sNew & Mid$(sPostName, idx, 1)
                 End If
            Case 32 'convert spaces to dashes – multiple spaces = one dash
                 If idx > 1 And Right$(sNew, 1) <> Chr$(45) Then
                     sNew = sNew & Chr$(45)
                 End If
        End Select
    Next idx


    If bCreateURL Then
        sNew = "http://www.paragonconstructioninc.com/projects/” & sNew & “/”"
    End If
    CleanPostName = sNew
End Function
chạy thử sub test như bên dưới xem :
Mã:
Sub tst()
    MsgBox CleanPostName("Hello World")
End Sub
 
Upvote 0
Cám ơn bạn rất nhiều, thì ra là bị ở những dấu " và ' ~_~
 
Upvote 0
Web KT

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

Back
Top Bottom