Привет!
[vba]Код
Public Sub Лист_Форматы_Обновить()
Форматы_Обновить ActiveSheet.UsedRange
End Sub
Public Function Форматы_Обновить(r As Range) _
As String
Dim rArea As Range
For Each rArea In r.Areas 'т.к. выбранными скорее всего окажутся не смежные ячейки, а области, то обрабатывать нужно каждую из областей
With rArea
.FormulaLocal = .FormulaLocal ' значения во всех ячейках области _
заменить на них же. При этом произойдёт обновление форматов _
(это такая не документированная особенность Excel)
End With
Next rArea
End Function
[/vba]