Копирование/манипулирование форматированным текстом в текстовых полях в Excel 2013 с использованием VBA

Я пытаюсь сделать две вещи в Excel 2013 с помощью VBA:

  1. Получите ФОРМАТИРОВАННЫЙ текст из текстового поля и манипулируйте им (например, HTML). А также
  2. Скопируйте ФОРМАТИРОВАННЫЙ текст из текстового поля в другое текстовое поле.

Я пробовал две вещи:

'Copies text only. No formatting, but with proper line breaks
Dim txtContent As String
txtContent = Worksheets("TextBox").Shapes("TextBox1").TextFrame.Characters.Text
Worksheets("TextBox").Shapes("TextBox 3").TextFrame.Characters.Text = txtContent

Второй подход был аналогичен предыдущему:

'Does not do anything. Produces Run-time error 91
Dim myFrame As TextFrame
myFrame = Worksheets("TextBox").Shapes("TextBox1").TextFrame
Worksheets("TextBox").Shapes("TextBox 3").TextFrame = myFrame

Пожалуйста помоги.


person Ross    schedule 13.02.2014    source источник
comment
Результаты в комментариях к коду.   -  person Ross    schedule 14.02.2014


Ответы (2)


Вы можете установить или получить форматирование текстовых символов в TextBox следующим образом:

Sub durall()
    ActiveSheet.Shapes("TextBox 1").TextFrame.Characters.Font.ColorIndex = 3
End Sub
person Gary's Student    schedule 13.02.2014
comment
Это на самом деле привело меня к тому, что у объекта Font есть куча опций (или вещей, которые нужно скопировать). Спасибо. msdn.microsoft.com/en-us/library/office/ff840959. aspx - person Ross; 14.02.2014

person    schedule
comment
Ваш ответ лучше (+1) - person Gary's Student; 14.02.2014
comment
Я бы проголосовал за это, но я новый пользователь. Я бы все равно вознаградил тебя, Гэри, за быстрый ответ. :) - person Ross; 14.02.2014