Подтвердить что ты не робот

Что такое .NumberFormat Options В Excel VBA?

Не могли бы вы сообщить мне, каковы параметры формата .NumberFormat в Excel VBA? Поскольку вы полностью уверены, что Excel 2010 поддерживает следующие типы:

enter image description here

Я знаю, что мы можем указать, например, Тип текста как:

.NumberFormat ="@"

или для числа:

.NumberFormat = "0.00000"

Не могли бы вы сообщить мне, какие другие варианты для типов в VBA?

4b9b3361

Ответ 1

Заметьте, что это было сделано в Excel для Mac 2011, но должно быть одинаковым для Windows

Macro:

Sub numberformats()
  Dim rng As Range
  Set rng = Range("A24:A35")
  For Each c In rng
    Debug.Print c.NumberFormat
  Next c
End Sub

Результат:

General     General
Number      0
Currency    $#,##0.00;[Red]$#,##0.00
Accounting  _($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)
Date        m/d/yy
Time        [$-F400]h:mm:ss am/pm
Percentage  0.00%
Fraction    # ?/?
Scientific  0.00E+00
Text        @
Special     ;;
Custom      #,##0_);[Red](#,##0)

(Я просто выбрал случайную запись для пользовательских)

Ответ 2

Благодаря этому вопросу (и ответам) я обнаружил простой способ получить точную строку NumberFormat практически для любого формата, который предлагает Excel.


Как получить строку NumberFormat для любого формата номера Excel


Шаг 1. В пользовательском интерфейсе установите ячейку в числовой формат, который вы хотите использовать.

I manually formatted a cell to Chinese (PRC) currency

В моем примере я выбрал китайскую (КНР) валюту из опций, содержащихся в поле "Формат номеров учетных записей".

Шаг 2. Разверните раскрывающийся список номера и выберите "Дополнительные форматы номеров...".

Open the Number Format dropdown

Шаг 3. На вкладке "Число" в категории выберите "Пользовательский".

Click Custom

В разделе "Пример" показано форматирование валюты Китая (КНР), которое я применил.

В поле ввода "Тип" содержится строка NumberFormat, которую вы можете использовать программно.

Итак, в этом примере цифровая валюта NumberFormat моей китайской (КНР) выглядит следующим образом:

_ [$¥-804]* #,##0.00_ ;_ [$¥-804]* -#,##0.00_ ;_ [$¥-804]* "-"??_ ;_ @_ 

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

Надеюсь, это поможет.

Ответ 3

В Excel вы можете установить Range.NumberFormat для любой строки, как вы могли бы найти в выборе "Пользовательский". По сути, у вас есть два варианта:

  • Общие для конкретного формата.
  • Пользовательская форматированная строка, например "$ #, ## 0", чтобы точно указать формат, который вы используете.

Ответ 4

dovers дает нам отличный ответ, и на его основе вы можете попробовать использовать его как

public static class CellDataFormat
{
        public static string General { get { return "General"; } }
        public static string Number { get { return "0"; } }

        // Your custom format 
        public static string NumberDotTwoDigits { get { return "0.00"; } }

        public static string Currency { get { return "$#,##0.00;[Red]$#,##0.00"; } }
        public static string Accounting { get { return "_($* #,##0.00_);_($* (#,##0.00);_($* \" - \"??_);_(@_)"; } }
        public static string Date { get { return "m/d/yy"; } }
        public static string Time { get { return "[$-F400] h:mm:ss am/pm"; } }
        public static string Percentage { get { return "0.00%"; } }
        public static string Fraction { get { return "# ?/?"; } }
        public static string Scientific { get { return "0.00E+00"; } }
        public static string Text { get { return "@"; } }
        public static string Special { get { return ";;"; } }
        public static string Custom { get { return "#,##0_);[Red](#,##0)"; } }
}