Вот обходной путь VBA, который установит формат для всех дат, чтобы быть определенным языком. Он написан только для форматирования дат, но вы можете это изменить. Основываясь на параметрах в диалоговом окне "Формат ячеек", я считаю, что он влияет только на даты, время и специальные форматы, но вы можете технически добавить LCID в любой формат. Вам понадобится список идентификаторов языков, чтобы установить для LCID
любое нужное вам значение. (Обязательно используйте LCID Hex, а не LCID Dec)
Sub SetLanguageFormat()
'Declarations
Dim cell As Range
Dim f As String
Const LCID As String = "[$-0409]"
Dim reg 'As RegExp 'Removed for late binding
'Setup regular expression
Set reg = CreateObject("vbscript.regexp")
reg.Global = True
reg.IgnoreCase = True
reg.Pattern = "\[\$\-+[\w]*[\w]\]"
'Loop through all cells and change the date formate
For Each cell In ActiveSheet.UsedRange.Cells
If IsDate(cell.Value) Then
f = cell.NumberFormat
If reg.Execute(f).Count > 0 Then
'Language is set so replace it
f = reg.Replace(f, LCID)
Else
'Langauge is not set so add it
f = LCID & f
End If
cell.NumberFormat = f
End If
Next
End Sub
Вы также можете сделать это один за другим с помощью ручного метода , щелкнув правой кнопкой мыши ячейку и выбрав «Формат ячеек ...»