使用VBA在Excel 2013中复制/处理文本框中的格式化文本

我想在Excel 2013中使用VBA做两件事情:

  1. 从文本框中获取FORMATTED文本,并对其进行处理(如HTML)。 和
  2. 将FORMATTED文本从文本框复制到另一个文本框。

我试了两件事:

'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 

请帮忙。

您可以设置检索文本框中文本字符的格式,如下所示:

 Sub durall() ActiveSheet.Shapes("TextBox 1").TextFrame.Characters.Font.ColorIndex = 3 End Sub 
 Sub Tester() CopyText ActiveSheet.Shapes("txtOne").TextFrame, _ ActiveSheet.Shapes("txtTwo").TextFrame End Sub Sub CopyText(tf1 As TextFrame, tf2 As TextFrame) Dim n, f As Font tf2.Characters.Text = tf1.Characters.Text For n = 1 To tf1.Characters.Count Set f = tf1.Characters(n, 1).Font With tf2.Characters(n, 1).Font .Bold = f.Bold .Color = f.Color .Italic = f.Italic 'add other properties as needed... End With Next n End Sub