По какой-то причине этот l oop не вызывает sub formatCells для запуска в каждой ячейке в выделении. Он будет работать только в верхней левой ячейке в выбранном диапазоне.
Sub selectionLoop()
Dim rng As Range, itm As Range
Set rng = Selection
For Each itm In rng
Call formatCells
Next
End Sub
Sub formatCells() 'Formats cells based on what is in the cell
If WorksheetFunction.IsText(ActiveCell) = True Then 'Searching for text in the cell
With ActiveCell.Font 'Applies text format
.Name = "Calibri"
.Size = 18
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
.Bold = True
End With
With ActiveCell
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Else
ActiveCell.NumberFormat = "#,##0_);(#,##0)" 'Applies number format
End If
End Sub