Персидский формат даты в TextBox Excel vba - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь применить персидский формат даты в текстовых полях на некотором рабочем листе. Текстовые поля теперь хранят дату в формате «дд / мм / гггг чч: мм», и это то, что я применил сам. Но я борюсь с применением персидской даты в этих текстовых полях. Я записал макрос, когда я меняю формат даты ячейки на персидский, и я пытался использовать его в текстовом поле, но этот код не работает должным образом.

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

TextBox1 = Format(TextBox1, "dd/mm/yyyy hh:mm")

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

TextBox3 = Format(TextBox3, "[$-fa-IR,16]dd/mm/yyyy;@")

Это эффект записи макроса и изменения формата даты на персидский вручную. Из этой строки я получил формулу и попробую реализовать ее выше.

Range("J30").Select
    Selection.numberFormat = "[$-fa-IR,16]dd/mm/yyyy;@"

Кто-нибудь из вас может дать мне какое-то разумное решение для этого?

Заранее благодарим за помощь.

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Этот пост должен быть вам полезен, поскольку он охватывает несколько различных форматов дат, включая персидский https://www.jquery -az.com / 3-way-change-date-format-excel-14-date -формул /

В Excel следующая формула отформатирует стандартную дату на персидском языке:

=TEXT(A1,"[$-0429]mmmm d,yyyy")

Так что в VBA должно работать следующее:

Range("J30").numberFormat = "[$-0429]mmmm d, yyyy"

С точки зрения форматирования внутри текстового поля, если текст в текстовом поле ссылается на местоположение ячейки, форматирование этого расположения ячейки повлияет на формат текстового поля - см. Иллюстрацию ниже.

enter image description here

Если вы пытаетесь отформатировать текст непосредственно в текстовом поле, вы можете попробовать добавить .value к фрагменту кода выше, например.

TextBox3.value = Format(TextBox3.value, "[$-fa-IR,16]dd/mm/yyyy;@")

У меня есть доступ только к Office для Mac на работе, и эта функция не поддерживается для тестирования. В этом посте обсуждается, как применить форматирование к текстовым полям через VBA, но он может не поддерживать параметры языкового форматирования. Если это так, вы можете изменить свои текстовые поля, чтобы они указывали на ячейку, которую вы можете отформатировать.

https://www.extendoffice.com/documents/excel/4899-excel-format-textbox-as-currency.html

0 голосов
/ 03 июня 2019

Вы установили персидский?

Файл> Параметры> Язык> [Добавить дополнительные языки редактирования] - Выберите Персидский> Добавить> OK

Возможно, вам потребуется перезапустить Excel и, возможно, потребуется повторно применить форматирование.

...