2012-08-16 28 views
1

我想獲取用戶窗體上的文本框的值並將其分配給字符串變量,然後使用String類的Insert方法將連字符插入到該字符串變量中。我每次運行此代碼,我得到一個錯誤「無效的限定詞」與AcctUnitString突出。String.Insert導致無效的限定符錯誤?

Dim AcctUnitString As String 

AcctUnitString = AcctUnit.Text 
AcctUnitString = AcctUnitString.Insert(2, "-") 

Debug.Print (AcctUnitString) 

AcctUnit是用戶窗體上的文本字段的名稱。任何想法可能會導致這個錯誤,或更好的方式做我想做什麼?

用戶將在文本框中輸入一個13位數字代碼(例如9200030015001),我想格式化它:92-0003-001-5001。任何幫助非常感謝!

+0

在我前面了,如果我在文本框輸入9200030015001,只是'Debug.Print(AcctUnit.Text)的例子'值爲9200030015001. – itsmequinn 2012-08-16 20:27:08

回答

1

我不知道內置的Excel功能可以做你正在尋找的東西

Sub test() 

    Dim AcctUnitString As String 

    AcctUnitString = "9200030015001" 
    AcctUnitString = InsertString(AcctUnitString, "-", 2) 
    MsgBox AcctUnitString 
End Sub 

Private Function InsertString(OriginalString As String, StringToInsert As String, WhereToInsertIt As Integer) As String 
    Dim String1 As String, String2 As String 
    String1 = Mid(OriginalString, 1, WhereToInsertIt) 
    String2 = Mid(OriginalString, WhereToInsertIt + 1, Len(OriginalString)) 
    InsertString = String1 & StringToInsert & String2 
End Function 

http://www.vbforums.com/showthread.php?141943-Insert-string-within-another-string-at-specific-position

+0

這讓我92-0030015001,這是有點接近而不是肯定的錯誤,但它將用「 - 」替換原始字符串中的一個字符,而不是在現有字符之間插入。 – itsmequinn 2012-08-16 20:36:15

+0

你說得對。我沒有注意到,給零 - 我已經添加了一個用戶功能,可以做到這一點。 – enderland 2012-08-16 20:42:53

+0

完美。謝謝! – itsmequinn 2012-08-16 20:50:51

3

here

字符串是沒有VBA對象,因此它們沒有方法如子串或刪除,如在VB.Net。

+0

那麼,這個確實解釋了很多,但是VBA中有可以執行字符串處理的函數嗎? – itsmequinn 2012-08-16 20:41:14

+0

似乎有一些獨立的函數具有相似的處理流名稱。我遇到了類似的問題,使用string.Trim(),但VBA的版本是Trim(字符串)。也許您的問題也存在獨立功能。 – 2013-02-24 00:02:30

相關問題