Использование системной константы LOCALE_NAME_USER_DEFAULT в vba
LOCALE_NAME_USER_DEFAULT
системная константа в VBA, или мне нужно использоватьGetUserDefaultLocaleName()
вместо функции?Если я могу использоватьLOCALE_NAME_USER_DEFAULT
системная константа, как мне получить ее значение?ФонЯ использую VBA для преобразования значения системного разделителя списка из,
в|
, перезапустите Excel, используйте VBA, чтобы сделать необходимый CSV с|
разделитель, затем восстановите значение разделителя списков по умолчанию и закройте Excel.
Иногда разделитель списка не переключается, как ожидалось, так что теперь яадаптируя метод, найденный здесь разработать защиту, которая проверяет текущее значение, чтобы убедиться, что оно|
.
Microsoft в настоящее время рекомендуетчто мы используем более актуальный GetLocaleInfoEx()
вместоGetLocaleInfo()
для целей взаимодействия.
Мне трудно получить значениеLOCALE_NAME_USER_DEFAULT
системная константа в VBA, что упоминается в документации. Вот соответствующий фрагмент того, что я имею до сих пор:
Private Const LOCALE_SLIST = &HC
Private Const LOCALE_NAME_MAX_LENGTH = 85
'Private Const LOCALE_NAME_USER_DEFAULT <-- stuck here, it wants me to declare it = to something, but I want the system value
'Get Locale Info
Private Declare Function GetLocaleInfoEx _
Lib "kernel32" ( _
ByVal lpLocaleName As String, _
ByVal LCType As Long, _
ByVal lpLCData As String, _
ByVal cchData As Long) As Long
Sub SubName()
Dim lpLCData As String
Long1 = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SLIST, lpLCData, 0)
Можете ли вы помочь мне выяснить, как получить системную константу дляLOCALE_NAME_USER_DEFAULT
так что я могу использовать эту функцию в VBA аналогичноC
пример найден здесь: