星期二, 一月 23, 2007
星期五, 一月 19, 2007
Tips,VBA里如何扩展一个文本框TextBox的的长度,超过255限制
这个真是终极方法。
因为VBA里TextBox对象通过程序操作,只能复制最多256个字符。但通过UI确可以操作基本上
没限制的字符操作,真是邪门。
最终发现程序实现,无限制文本框操作技巧
Dim ctl1 As Shape
datasheetName = "Sheet1"
MyStr ="有1千个字符"
On Error Resume Next'如果不存在,删除会出错
Sheets("Sheet1").Shapes("recommend").Delete
Set ctl1 = Sheets("Sheet1").Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 200, 450, 500)
ctl1.TextFrame.Characters.Text = left(MyStr,200)
ctl1.Name = "recommend"
'注意代码,perfect
For a = 1 To WorksheetFunction.Ceiling(Len(MyStr) / 200, 1)
ctl1.TextFrame.Characters((a * 200) + 1).Insert String:=Mid(MyStr, (a * 200) + 1, 200)
Next a
For Each ctl In Sheets(datasheetName).Shapes
Debug.Print TypeName(ctl) & " " & Left(ctl.Name, 8)
Next
因为VBA里TextBox对象通过程序操作,只能复制最多256个字符。但通过UI确可以操作基本上
没限制的字符操作,真是邪门。
最终发现程序实现,无限制文本框操作技巧
Dim ctl1 As Shape
datasheetName = "Sheet1"
MyStr ="有1千个字符"
On Error Resume Next'如果不存在,删除会出错
Sheets("Sheet1").Shapes("recommend").Delete
Set ctl1 = Sheets("Sheet1").Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 200, 450, 500)
ctl1.TextFrame.Characters.Text = left(MyStr,200)
ctl1.Name = "recommend"
'注意代码,perfect
For a = 1 To WorksheetFunction.Ceiling(Len(MyStr) / 200, 1)
ctl1.TextFrame.Characters((a * 200) + 1).Insert String:=Mid(MyStr, (a * 200) + 1, 200)
Next a
For Each ctl In Sheets(datasheetName).Shapes
Debug.Print TypeName(ctl) & " " & Left(ctl.Name, 8)
Next
订阅:
博文 (Atom)