根据值更改单元格中的字体

时间:2017-07-28 00:16:45

标签: vba excel-vba fonts excel

我正在尝试根据这些单元格的值更改单元格范围内的字体。因此,我想根据D1的值更改D1的字体,并且我想根据D2的值更改D2的字体,依此类推D33。

我能够找到有关如何根据另一个单元格here的值更改A CELL字体的结果。这个VBA代码只完成了D1的工作。但是,它不适用于D2,D3,D4等。

有人可以帮助我根据需要调整代码吗?

如果这个问题很容易回答我很抱歉,但我不熟悉VBA编码的工作方式。

1 个答案:

答案 0 :(得分:2)

此代码将执行您所描述的内容,在这种情况下,根据您在D列中提到的特殊字符将字体应用于C列中的文本(注意我使用的是1而不是“1”等...)。如果D列不包含任何这些字符,则它假定所需的字体名称在D列中 - 我这样做只是为了提供代码测试。当然,您需要根据您的具体情况修改代码,但希望这可以帮助您入门。

enter image description here

Option Explicit
Sub fontChange()
Dim theRange As Range, cell As Range
Set theRange = Range("C1:C16")
For Each cell In theRange
  Select Case cell.Offset(0, 1)
    Case 0, 1, "(":
      cell.Font.Name = "Wingdings 2"
    Case "", ":":
      cell.Font.Name = "Wingdings"
    Case Else:
      cell.Font.Name = cell.Offset(0, 1)
  End Select
Next
End Sub

在动画gif中,我逐步浏览代码,以便您可以看到它正常工作。