если функция не работает VBA

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 

Цвет текста становится синим, но другие команды, такие как курсив жирным шрифтом, не выполняются

+ Изменить

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

к этому:

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

Перейдите в первую строку кода и добавьте эту строку:

 Option Explicit 

Теперь попробуйте запустить свой код.

Вы получите ошибку, потому что переменная Arial не определена.

Это подскажет вам, что это должно быть:

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

Несколько вещей:

Предполагая, что вы указали все свои переменные правильно, и единственная проблема, с которой вы сталкиваетесь, заключается в том, что ячейка не форматируется, как ожидалось.

  • Как уже указывалось, Arial должен быть "Ariel"
  • Установите шрифт в качестве первой строки форматирования. Вы добавляете свое жирное, курсивое и синее форматирование, а затем устанавливаете его в Ariel, который удаляет жирный и курсивный настрой.
    EDIT: Моя ошибка – это потому, что вы используете .Font.FontStyle = "Arial" . Изменение в FontStyle удаляет полужирный и курсив. Используйте .Font.Name = "Arial" чтобы сохранить ранее примененное форматирование.
  • Убедитесь, что в этой ячейке нет условного форматирования, поскольку оно будет отменять любое другое форматирование, которое вы ему даете.

Помимо этого – я бы предложил обновить вашу переменную FileName до SheetName – ничего неправильного с FileName , вы могли бы использовать Purple_Rock_Lobber если хотите, и Excel не волновало бы, но это смутило бы людей, когда код будет повторно рассмотрен через пару лет.
Также не знаете, почему у вас есть двойные кавычки напротив FileName ?

  • Excel: как суммировать ячейки, которые находятся рядом с ячейками того же номера
  • Excel SUM Условный
  • Как использовать инструкцию IF для расчета комиссионных или фиксированной платы
  • VBA Excel Если заявление на основе ввода текстового поля
  • Как использовать функции AND и OR в Excel для достижения решения
  • Excel Минимальное значение, зависящее от сгруппированных данных
  • Заявление Excel IF для поиска нескольких слов
  • Как написать многоядерные сопоставляемые ячейки VBA Если заявление в Excel
  • Excel VBA простой, если нет инструкции
  • Как предотвратить пропуску проверки строки при проверке и удалении предыдущей строки?
  • Цикл «Для каждого» сохраняет циклическое прошлое «Если»
  • Давайте будем гением компьютера.