Я создаю электронную таблицу и хотел бы убедиться, что все содержимое на английском языке, даже если электронная таблица используется совместно с пользователями, у которых в Office установлен другой язык. Пример, когда это не так (французский язык является языком по умолчанию):

Возможно ли это на уровне документа? Я знаю, что могу управлять языками в моей установке Office, я хотел бы понять, могу ли я переопределить этот параметр в установках других пользователей (для этого документа)

1 ответ1

1

Вот обходной путь 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

Вы также можете сделать это один за другим с помощью ручного метода , щелкнув правой кнопкой мыши ячейку и выбрав «Формат ячеек ...»

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .