如果功能不起作用VBA

时间:2017-07-31 06:47:23

标签: excel vba excel-vba if-statement

If (Year(n) - Year(d) >= 1) Then
    MsgBox "Latest Fiscal Year Data is" & dd & "Days," & md & "Months," & yd & "Years Old"
    Sheets("" & Filename).Cells(5, y2).Font.Italic = True
    Sheets("" & Filename).Cells(5, y2).Font.Color = RGB(0, 0, 255)
    Sheets("" & Filename).Cells(5, y2).Font.Bold = True
    Sheets("" & Filename).Cells(5, y2).Font.FontStyle = Arial

End If

文本颜色变为蓝色,但不执行斜体粗体等其他命令

3 个答案:

答案 0 :(得分:2)

更改

Sheets("" & Filename).Cells(5, y2).Font.FontStyle = Arial

到此:

Sheets("" & Filename).Cells(5, y2).Font.Name = "Arial"

答案 1 :(得分:0)

转到代码的第一行,然后添加以下行:

Option Explicit

现在尝试运行您的代码。

您将收到错误,因为未定义变量Arial

这会暗示你,它应该是:

Sheets("" & Filename).Cells(5, y2).Font.Name = "Arial"

答案 2 :(得分:0)

有几件事:

假设您已正确声明所有变量,并且您遇到的唯一问题是该单元格没有按预期格式化。

  • 正如已经指出的那样 - Arial需要"Ariel"
  • 将字体设置为第一行格式。你添加粗体,斜体和蓝色格式,然后将其设置为Ariel,删除粗体和&斜体设置。
    编辑:我的错误 - 因为您正在使用.Font.FontStyle = "Arial"FontStyle中的更改删除了粗体和&斜体。使用.Font.Name = "Arial"保留以前应用的格式。
  • 检查您是否在该单元格上设置了任何条件格式,因为它将覆盖您提供的任何其他格式。

除此之外 - 我建议您将FileName变量更新为SheetName - FileName没有任何问题,如果您愿意,可以使用Purple_Rock_Lobber和Excel不会关心,但是当代码在几年后重新访问时会让人感到困惑 也不确定为什么你在FileName前面有双引号?