Я хотел бы перевести отчет по выставлению счетов с португальского (Бразилия) на английский. Он точен по месяцам и является автоматизированным листом.
Контракт может начаться в январе, но обычно он начинается и в остальные 11 месяцев.

Если я установлю первый месяц как апрель, одиннадцать других справа продолжат расти (май, июнь, июль ...) до марта.

Я создал эту формулу:

=PROPER(TEXT((B1&1)+31;"mmmm")) 

за второй-двенадцатый месяц.

Однако я использую его на португальском (Бразилия), и он работает очень хорошо. Но когда бьешь по английскому месяцу, это на самом деле не работает.

Я пытался [$-409] и они не работают так, как я хочу.

Если я использую это, это идет как, Janeiro и февраль, и ошибка в следующие месяцы.

Я хочу записать январь и получить февраль, март и так далее.

Он может работать на вашем компьютере, попробуйте его на других языках, пожалуйста.

Примечание: VBA не будет работать, мне нужно отправить его своим клиентам.

2 ответа2

1

Я думаю, что вы хотите, не возможно так, как вы хотите.

Согласно вашим комментариям, вы не можете изменить системные настройки языка, потому что этот документ может использоваться на других компьютерах, где это не вариант

Единственное решение, которое я могу придумать, - это использовать VBa.

В этом примере я просматриваю весь лист и заменяю слова на эквивалентные

Прежде всего, сделайте резервную копию файла. Вы не можете отменить VBa

Sub ChangeTheNameMeHearties()

Dim cell As Range

For Each cell In ActiveSheet.UsedRange
    Dim s As String
    Select Case LCase(cell.Value)

        Case cell.Value = "january"
            cell.Value = "Janeiro"

        Case cell.Value = "february"
            cell.Value = "Fevereiro"

    End Select
Next

End Sub

Вам нужно будет добавить остальные месяцы, но это должно быть прямо вперед, а затем подумайте, как они «переводят»

Также см. Как добавить VBA в MS Office?

Вы могли бы даже использовать case case как

    Case cell.Value = "january"
        cell.Value = "Janeiro"

    Case cell.Value = "janeiro"
        cell.Value = "January"

    Case cell.Value = "february"
        cell.Value = "Fevereiro"

    Case cell.Value = "fevereiro"
        cell.Value = "February"

Это будет означать, что при каждом запуске вы будете переключаться между языками

0

Я уже исправил, извините за опоздание.

Я исправил с помощью

=PROPER(TEXT((DATE(2014,B3,1)),"mmmm"))

где "B3" - номер месяца, который изменяется только один раз, извлеченный из сводной таблицы.

Следующий месяц получает +1, а не "следующий месяц".

=IF(B3<12,B3+1,1)

IF используется для перезапуска с 1, если месяцем ранее уже 12. «Без« если бы »оно продолжало бы расти и дальше 13»

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