如何在连接时格式化Excel中的文本

时间:2013-07-06 10:27:57

标签: excel excel-vba vba

我想根据来自其他单元格的输入在新单元格中构建文本,并且在新单元格中我想要突出显示具有不同颜色的所选文本,以下是我的示例代码

Sub Macro1()

   While ActiveCell.Offset(0, -1) <> ""       
     ActiveCell.Offset(0, 0).FormulaR1C1 = _
      "New Text" & ActiveCell.Offset(0, -1) & ":" & ActiveCell.Offset(0, -2)

     ActiveCell.Offset(1, 0).Select
   Loop

End Sub

这里我想将颜色定义为“新文本”,我已经看到了如何更改整个单元格,但不是所选文本。怎么做?

2 个答案:

答案 0 :(得分:1)

以下是将字符串中的特定字符更改为其他颜色的示例(在本例中为红色):

Sub ChgColour()

    vStart = 12
    vLength = 3
    With ActiveCell.Characters(Start:=vStart, Length:=vLength).Font
       .Color = -16776961
    End With

End Sub

这会从12日开始改变三个字符的颜色。

我发现,当我不确定是在手动执行步骤时录制宏时,我发现获取VBA语法非常有用的一个提示,然后您可以看到所使用的代码。有时它会生成比所需更多的代码,比如设置所有字体属性而不仅仅是你想要的那些,但通常很容易找出你需要的部分,并用相对的部分替换绝对的单元格/字符引用。 / p>

答案 1 :(得分:-1)

使用此:

Do While ActiveCell.Offset(0, -1) <> ""
 ActiveCell.Offset(0, 0).FormulaR1C1 = _
  "New Text " & ActiveCell.Offset(0, -1) & ":" & ActiveCell.Offset(0, -2)

 With ActiveCell.Characters(Start:=0, Length:=8).Font
    .Color = -16776961
 End With

 ActiveCell.Offset(1, 0).Select

Loop