自动加粗活动级联单元格

时间:2015-04-14 04:09:09

标签: excel-vba excel-formula vba excel

我不确定我的需要是通过公式还是宏来完成的 我尝试使用条件公式将连接文本的一部分更改为粗体,但它不起作用。

例如,我有一张包含A1:D1的4列的表格 标题是:

Name | Age | Gender | concatenate

现在前3列中有很多信息,我正在尝试连接这些信息 - 例如=concatenate(A2,B2,C2) - 但我需要在{{}上输入公式后自动设置年龄。 1}}

我正在尝试在A-B和C列下有数据的每一行 我一直在网上看,但我没有找到任何办法。

1 个答案:

答案 0 :(得分:1)

试试这个。

这使age部分变为粗体:

Private Sub Concatenate()
    Range("A2").Select
    Do While ActiveCell.Row <= ActiveSheet.UsedRange.Rows.Count
        ActiveCell.Offset(0, 3).Font.Bold = False
        ActiveCell.Offset(0, 3).Value = ActiveCell.Value & ActiveCell.Offset(0, 1).Value & CStr(ActiveCell.Offset(0, 2).Value)
        ActiveCell.Offset(0, 3).Characters(Len(ActiveCell.Value) + 1, len(ActiveCell.Offset(0, 1).Value)).Font.Bold = True 
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub

...

这会使name变为粗体。

ActiveCell.Offset(0, 3).Characters(1, len(ActiveCell.Value)).Font.Bold = True

.Character后的paranthesis确定文本的粗体部分:逗号前面的部分是起始位置,逗号后面的部分是粗体部分的长度。 Len(ActiveCell.Value)是第一列中文本的长度,因此粗体部分从第一个字符开始,并延伸到name的长度。