Попробуйте что-то вроде этого, вы можете адаптировать его по мере необходимости ...
Public Sub FormatCellsBasedOnString()
Dim lngToCol As Long, lngCol As Long, lngToRow As Long
With Sheet1
lngToCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For lngCol = 1 To lngToCol
lngToRow = .Cells(.Rows.Count, lngCol).End(xlUp).Row
.Range(.Cells(3, lngCol).Address & ":" & .Cells(lngToRow, lngCol).Address).NumberFormat = .Cells(2, lngCol)
Next
End With
End Sub
Для форматирования ячеек под ним используется числовой формат во 2-й строке столбца.варианты действительно бесконечны.Отформатируйте ячейку так, как вам нужно, затем перейдите к Custom в форматировании ячейки и используйте эту строку для форматирования ячейки, используя эту концепцию макроса.
![enter image description here](https://i.stack.imgur.com/xaHab.gif)
Надеюсь, это имеет смысл.