【问题标题】:How to format text in Excel while concatenating如何在连接时在 Excel 中格式化文本
【发布时间】:2013-07-04 07:58:04
【问题描述】:

我想根据来自其他单元格的输入在新单元格中形成一个文本,并且在新单元格中我想用不同的颜色突出显示选定的文本,以下是我的示例代码

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

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

【问题讨论】:

标签: excel vba


【解决方案1】:

这是一个将字符串中的特定字符更改为另一种颜色(在本例中为红色)的示例:

Sub ChgColour()

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

End Sub

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

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

【讨论】:

    【解决方案2】:

    使用这个:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多