如何在VBA中以编程方式创建格式化文本?

如何在VBA中以编程方式创建格式化文本?,vba,ms-word,ms-office,Vba,Ms Word,Ms Office,我需要以编程方式创建一个文本(两行,多种字体),稍后我会将其放在几个表中(我使用的一种方法是使用HTML或richtext,它本质上是一个字符串。我相当确信Word可以使用正确的com对象设置来解释其中任何一种 我尝试过的另一种方法是使用剪贴板而不是word对象。您可以执行以下操作: Sub CreateNewWordDoc() Dim para As Word.Paragraph Set para = ActiveDocument.Paragraphs.Add para.Rang

我需要以编程方式创建一个文本(两行,多种字体),稍后我会将其放在几个表中(我使用的一种方法是使用HTML或richtext,它本质上是一个字符串。我相当确信Word可以使用正确的com对象设置来解释其中任何一种

我尝试过的另一种方法是使用剪贴板而不是word对象。您可以执行以下操作:

Sub CreateNewWordDoc()
  Dim para As Word.Paragraph

  Set para = ActiveDocument.Paragraphs.Add
  para.Range.Font.Hidden = True
  ' Do your manipulation
  para.Range.Text = "Hello world"
  para.Range.Font.Name = "Tahoma"
  para.Range.Font.ColorIndex = wdBlue
  ' Now remove the paragraph as if it never existed!
  para.Range.Delete


End Sub
(导入
system.windows.forms


我使用的一种方法是使用HTML或richtext,它本质上是一个字符串。我确信Word可以用正确的com对象设置来解释这两种格式

我尝试过的另一种方法是使用剪贴板而不是word对象。您可以执行以下操作:

Sub CreateNewWordDoc()
  Dim para As Word.Paragraph

  Set para = ActiveDocument.Paragraphs.Add
  para.Range.Font.Hidden = True
  ' Do your manipulation
  para.Range.Text = "Hello world"
  para.Range.Font.Name = "Tahoma"
  para.Range.Font.ColorIndex = wdBlue
  ' Now remove the paragraph as if it never existed!
  para.Range.Delete


End Sub
(导入
system.windows.forms

你能用和吗

大概是这样的:

Sub CreateNewWordDoc()
  Dim para As Word.Paragraph

  Set para = ActiveDocument.Paragraphs.Add
  para.Range.Font.Hidden = True
  ' Do your manipulation
  para.Range.Text = "Hello world"
  para.Range.Font.Name = "Tahoma"
  para.Range.Font.ColorIndex = wdBlue
  ' Now remove the paragraph as if it never existed!
  para.Range.Delete


End Sub
你能用和吗

大概是这样的:

Sub CreateNewWordDoc()
  Dim para As Word.Paragraph

  Set para = ActiveDocument.Paragraphs.Add
  para.Range.Font.Hidden = True
  ' Do your manipulation
  para.Range.Text = "Hello world"
  para.Range.Font.Name = "Tahoma"
  para.Range.Font.ColorIndex = wdBlue
  ' Now remove the paragraph as if it never existed!
  para.Range.Delete


End Sub

为什么不在完成复制后将其删除?或者在复制到的第一个位置创建它?创建的文本不应该放在文档正文中。文本需要放在几个表格的某个表格单元格中,在整个文档中用几个文本框包装。我只是认为这是可能的o将格式化文本处理为字符串。您使用什么来执行此操作?Winforms?您可以提供一些示例代码吗?为什么不在复制完成后将其删除?或者在复制到的第一个位置创建它?创建的文本不应放在文档体中。文本需要放在se上的某个表单元格中在整个文档中,有几个文本框包装了几个表。我只是认为可以将格式化文本作为字符串处理。您使用什么来完成此操作?Winforms?您能提供一些示例代码吗?带有“格式化文本”我不是指Rtf或Html格式。它是一种任意格式的文本,包含粗体和普通字符。顺便说一句:虽然VB6有剪贴板对象,但VBA没有。你必须定义一个数据对象的文本并将该对象放入剪贴板。无论如何,这是一种很好的方法。如果不是Rtf或Html,它是哪种格式?没有assoc,你就不能有文本过时的格式。纯文本没有格式,但它被称为“纯文本”(格式),然后您不能使用粗体。我认为这是您的默认设置,除非您告诉它将字符串解释为其他内容。使用“格式化文本”我不是指Rtf或Html格式。它是一种任意格式的文本,包含粗体和普通字符。顺便说一句:虽然VB6有剪贴板对象,但VBA没有。你必须定义一个数据对象的文本并将该对象放入剪贴板。无论如何,这是一种很好的方法。如果不是Rtf或Html,它是哪种格式?没有assoc,你就不能有文本过时的格式。纯文本没有格式,但它被称为“纯文本”(format),然后您不能使用粗体。我认为这是您的默认设置,除非您告诉它将字符串解释为其他内容。