Я уже пытался использовать этот код, и он не работает

Sub Bold()
 With Sheets("1470")
        For Each Cell In Range("J:J")
            If Cell.Value = "N/A" Then
                Cell.Font.bold = True
            End If
        Next Cell
    End With
End Sub

Вывод, который я хочу выполнить - каждая ячейка в столбце J, содержащая «N / A», выделяется жирным шрифтом

Я получил ошибку

"Несоответствие типов"

1
MR. BLANK 16 Авг 2019 в 09:09

2 ответа

Лучший ответ

Этот ответ основан на предположении о том, что вы ищете #N/A ошибки на своем листе, вызванные теми же формулами в этом столбце.

Sub Test()

Dim rng1 As Range, rng2 As Range
With ThisWorkbook.Sheets("1470")
    Set rng1 = .Range("J1:J" & .Range("J" & .Rows.Count).End(xlUp).Row)
    If .Evaluate("=SUM(--ISNA(" & rng1.Address & "))") > 0 Then
        Set rng2 = Intersect(rng1, rng1.SpecialCells(xlCellTypeFormulas, xlErrors))
        rng2.Font.Bold = True
    End If
End With

End Sub
1
JvdV 16 Авг 2019 в 09:26
  1. Не используйте J:J, это замедлит ваш код. Найдите последний ряд, а затем отметьте этот диапазон.
  2. Для специальной проверки #N/A используйте CVErr(), как показано ниже.
  3. Если вы хотите проверить наличие ошибок, используйте IsError(), как упомянуто @PawelCzyz.

Это то, что вы пытаетесь?

With Sheets("1470")
    lrow = .Range("J" & .Rows.Count).End(xlUp).Row

    For Each cell In Range("J1:J" & lrow)
        If CVErr(cell.Value) = CVErr(xlErrNA) Then
            cell.Font.Bold = True
        End If
    Next cell
End With
2
Siddharth Rout 16 Авг 2019 в 07:16