String.Insert导致无效的限定符错误?

问题描述:

我想获取用户窗体上的文本框的值并将其分配给字符串变量,然后使用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

我不知道内置的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

here

字符串是没有VBA对象,因此它们没有方法如子串或删除,如在VB.Net。

+0

那么,这个确实解释了很多,但是VBA中有可以执行字符串处理的函数吗? – itsmequinn 2012-08-16 20:41:14

+0

似乎有一些独立的函数具有相似的处理流名称。我遇到了类似的问题,使用string.Trim(),但VBA的版本是Trim(字符串)。也许您的问题也存在独立功能。 – 2013-02-24 00:02:30