Проблема с форматированием VBA - PullRequest
0 голосов
/ 25 ноября 2018

Я форматирую ячейку в следующем формате, используя VBA (учет в евро):

"_-* #.##0,00 €_-;-* #.##0,00 €_-;_-* ""-""?? €_-;_-@_-"

Но, как ни странно, в Excel числа отображаются так: 50,05 - это 50,05000 €.

Когда я выбираю формат, я получаю следующее:

_-* #,##000 \€_-;-* #,##000 \€_-;_-* "-"?? \€_-;_-@_-

Запятые в нулях запятые.Как мне это исправить?

Спасибо

Ответы [ 3 ]

0 голосов
/ 25 ноября 2018

я вижу здесь ошибку в несколько тысяч и десятичный разделитель

"_-* #.##0,00 €_-;-* #.##0,00 €_-;_-* ""-""?? €_-;_-@_-" для точек в качестве разделителя тысяч и запятых в качестве десятичного разделителя

, в то время как ваш пример (т.е. 50,05) указываетк десятичному разделителю запятой

может быть ваш Excel принимает противоположное соглашение

перейдите в «Файл»> «Параметры», перейдите на вкладку «Дополнительно» и перейдите в раздел «Параметры редактирования», в конце котороговы можете проверить, какие тысячи и десятичный разделитель были приняты

, а затем изменить свой код соответственно

или вы можете использовать несколько «нечувствительный» код, который принимает в настоящее время соглашения о разделителях:

Selection.NumberFormat = "_-* #" & Application.ThousandsSeparator & "##0" & Application.DecimalSeparator & ",00 €_-;-* #" & Application.ThousandsSeparator & "##0" & Application.DecimalSeparator & "00 €_-;_-* ""-""?? €_-;_-@_-"

или, в несколько более читаемой форме:

With Application
    Selection.NumberFormat = "_-* #" & .ThousandsSeparator & "##0" & .DecimalSeparator & ",00 €_-;-* #" & .ThousandsSeparator & "##0" & .DecimalSeparator & "00 €_-;_-* ""-""?? €_-;_-@_-"
End With
0 голосов
/ 25 ноября 2018

Я нашел ошибку.Я должен был поменять местами запятые и указывает на:

"_-* #,##0.00 €_-;-* #,##0.00 €_-;_-* ""-""?? €_-;_-@_-"
0 голосов
/ 25 ноября 2018

Я нахожу . странным в левой части.

Я бы попробовал что-то вроде "_-* # ##0,00 €_-;-* # ##0,00 €_-;_-* ""-""?? €_-;_-@_-"

...