【发布时间】:2011-07-25 22:04:16
【问题描述】:
我有这段代码,我一直在使用 Excel 2003,它模仿了不久前 Microsoft 网站上给出的解决方案。如何向形状的文本框添加超过 255 个字符:
For i = 0 To Int(Len(myTxt) / 255)
.Characters(.Characters.Count + 1).Insert Mid(myTxt, (i * 255) + 1, 255)
Next i
这只是在 Excel 2007 下不起作用。有两个问题。
- Insert 不能在字段末尾插入,它在现有字符处插入。所以
.Characters(.Character.Count).Insert会起作用,尽管这不是我想做的。 - 它作为覆盖操作,而不是插入操作。无论我在哪里应用 Insert 它都会覆盖现有字符。因此,
(.Character.Count)处的插入将删除最后一个字符。
现在我已经内置了逻辑,可以根据您使用的 Excel 版本进行不同的操作。但我找不到与此问题相关的任何内容。这是一个已知的错误吗?有没有办法解决这种行为?
(在相关说明中,我也无法设置 .Characters(x,y).Font.Underline = True。)
EDIT 在我的特定示例中,上面的代码包含With myWorksheet.Shapes(1) 之类的内容,其中形状是文本框。它里面已经有文本,我需要在上面附加myTxt(string 超过 255 个字符)。这段代码在 Excel 2003 上运行没有问题。我在其他地方看到过这个问题,但正在从 Stack Overflow 寻找一个正式的声明......
【问题讨论】:
-
你能添加 With 块吗?以及对象的声明?会有所帮助。
-
@downwitch 添加了详细说明。
标签: vba excel excel-2007 excel-2003