文本框中的VBA文本string限制

我在这里遇到了一个关于如何使用VBA从Excel中的文本框中获取文本的答案:

获取文本框的值到单元格

我今天评论,但不确定这是否会被拿起,我想我会问这个问题。

我的Excel版本是2002年/版本10.我的查询是从TextBox返回文本的这种方法是限制返回一定数量的字符/string的长度。

Worksheets("Sheet1").Shapes("TextBox 1").TextFrame.Characters.Text

这将返回文本,但不会返回整个string。

当我使用:

Worksheets("Sheet1").Shapes("TextBox 1").TextFrame.Characters.Text = "blah blah blah"

它将文本设置为“等等等等”,除非初始文本很长。 在这种情况下,它将覆盖大部分现有文本“等等等等”,但是也包括文本的其余部分。

我希望这是有道理的,我希望有人知道答案。

谢谢

****另外****其实我刚才看了一下,有什么好玩的,想回答我的问题是它返回的字符数是255(着名的255)。

所以考虑到这一点,我认为我的问题需要改变,“有没有办法解决这个问题,限制在255个字符?

在我的32位Excel 2013中,限制是32767 – (2 ^ 15)-1 – 个字符。 尝试运行这个VBA,看看你是否得到相同的错误有我:

 Option Explicit Sub Test() Dim ws As Worksheet Dim shp As Shape Dim strFill As String Dim strTest As String Dim lng As Long Set ws = Sheet1 Set shp = ws.Shapes.AddTextbox(msoTextOrientationHorizontal, _ ws.Range("A1").Left, ws.Range("A1").Top, 500, 500) strTest = "blah blah blah" 'enter 32767 x characters in textbox strFill = VBA.String(32767, "x") shp.TextFrame.Characters.Text = strFill 'check the string length MsgBox Len(shp.TextFrame.Characters.Text) 'overwrite the string shp.TextFrame.Characters.Text = strTest MsgBox "overwritten with " & strTest 'enter 32768 x characters in textbox strFill = VBA.String(32768, "x") shp.TextFrame.Characters.Text = strFill '<~~ error should occur on this line! End Sub 

错误是:

运行时错误“1004”:无法设置Characters类的Text属性

出现在下面的第二行代码中,试图填充长度为32,768个字符的Textbox

 strFill = VBA.String(32768, "x") shp.TextFrame.Characters.Text = strFill