У меня есть этот фрагмент кода, который я использовал в 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. Есть две проблемы.
- Вставка не может вставлять в конец поля, она вставляется в существующий символ. Так что
.Characters(.Character.Count).Insert
будет работать, хотя я этого и не хочу. - Он работает как перезапись, а не вставка. Везде, где я применяю Insert, он перезаписывает существующие символы. Таким образом, вставка в
(.Character.Count)
удалит последний символ.
Теперь я встроил логику для работы по-разному в зависимости от используемой версии Excel. Но ничего не нашел по этому вопросу. Это известная ошибка? Есть ли способ исправить это поведение?
(Кроме того, я также не могу установить .Characters(x,y).Font.Underline
= True.)
EDIT В моем конкретном примере код выше содержит что-то вроде With myWorksheet.Shapes(1)
, где фигура представляет собой текстовое поле. Внутри него уже есть текст, и мне нужно добавить к нему myTxt
(string
длиннее 255 символов). Этот код работал без проблем в Excel 2003. Я видел, что эта проблема упоминается в другом месте, но я ищу официальное заявление о ней из переполнения стека...