2016-12-23 2 views
-2

トリム(MS-Access 2010のVBAでは)vbCrLfsは削除されず、スペースのみが削除されます。イミディエイトウィンドウで、私はしかし、スペースの場合VBA 7.0の改行と空白の両方を切り捨てます。

? Len(vbCrLf & "a" & vbCrLf & "b" & vbCrLf) 
8 

? Len(Trim(vbCrLf & "a" & vbCrLf & "b" & vbCrLf)) 
8 

を得る:

? Len(" " & "a" & " " & "b" & " ") 
5 

? Len(Trim(" " & "a" & " " & "b" & " ")) 
3 

だけ端にvbCrLFsを取り除くトリミングをするためにどのように?

+0

ちょっと、時間?カッコいい。 – cyboashu

+2

はい、「あなた自身の質問に答えてください」という質問をするときにチェックボックスがあります。 –

+0

ああ....以前は気付かなかった。良い 。 – cyboashu

答えて

-1

これはトリック行っているようだ:あなただけ行うことができます(単にエッジではなく)すべての新しい行を削除してもかまわない場合

Public Function trimNewlinesAndSpaces(chaine As String) As String 
    chaine = Trim(chaine) 

    Do While (left(chaine, 2) = vbCrLf) Or right(chaine, 2) = vbCrLf 
     If left(chaine, 2) = vbCrLf Then 
      chaine = right(chaine, Len(chaine) - 2) 
     End Ifj 

     If right(chaine, 2) = vbCrLf Then 
      chaine = left(chaine, Len(chaine) - 2) 
     End If 

     chaine = Trim(chaine) 
    Loop 

    trimNewlinesAndSpaces = chaine 
End Function 
0

を:

myStr = Application.clean(Application.trim(myStr)) 

トリムを模倣するために関数では、文字列の端にある各文字をテストする必要があります。

Function TrimNewLines(mtStr As String) As String 
    Dim pattern As String, c As String 
    Dim i As Integer: i = 1 
    pattern = "[" & Chr(10) & Chr(13) & "]" 
    c = Mid(mtStr, i, 1) 
    Do While c Like pattern 
     i = i + 1 
     c = Mid(mtStr, i, 1) 
    Loop 
    mtStr = Mid(mtStr, i, Len(mtStr)) 
    i = Len(mtStr) 
    c = Mid(mtStr, i, 1) 
    Do While c Like pattern 
     i = i - 1 
     c = Mid(mtStr, i, 1) 
    Loop 
    mtStr = Mid(mtStr, 1, i) 
    TrimNewLines = mtStr 
End Function 
+0

実際に私は気にします。 –

関連する問題