2017-04-19 56 views
0

我在VBA(單詞)上創建了一個用戶表單,用戶在其中輸入多行文本到TextBox1中。我希望將其轉換爲單行字符串。我曾嘗試以下:如何將多行字符串輸入從文本框(在用戶表單中)轉換爲單行輸入字符串(vba單詞)

'Replace method 
TextBox1.Text = TextBox1.Text.Replace what:=vbFl replacement:="" 

這將導致「無效的限定詞」與問候的。文本

'Replace function 
TextBox1.Text = Replace(TextBox1.Text, vbLf, "") 

這不會產生任何錯誤,但不進行必要的轉換。

+0

你的第二次嘗試具有正確的語法這就是爲什麼它不產生一個錯誤,但是什麼字符串沒有找到,因爲vbLf是一個長期的,而不是字符串,儘管VBA可能設法將數字強制轉換爲字符串,但它不是您正在查找的數字。關閉我的頭頂,我不知道TextBox使用哪個字符串。它可能是Chr(10)或Chr(11),也可能是Chr(10)和Chr(13) - 或者相反。你可以像這樣輸入:What:= Chr(11)' – Variatus

+0

@Variatus'vbLF'無疑是一個字符串。這只是不正確的字符串在這種情況下使用,顯然:)(嘗試'?TypeName(vbLF)'在立即窗口中,如果你願意的話) –

+0

謝謝@David Zemens。看起來可能是騙人的,然後:-) – Variatus

回答

1

在Word中,您也必須考慮回車。有三種方法做它自己的方式:

'Replace function 
TextBox1.Text = Replace(TextBox1.Text, vbCr + vbLf, "") 
TextBox1.Text = Replace(TextBox1.Text, Chr(10) + Chr(13), "") 
TextBox1.Text = Replace(TextBox1.Text, vbCrLf, "") 
相關問題