Добрый день! Делаю UDF, преобразующую диапазон с данным в массив {} разделитель столбцов можно узнать так: [vba]
Код
Option Explicit
Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" _ (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Position = InStr(ListSeparator, Chr$(0)) If Position > 0 Then ListSeparator = Left$(ListSeparator, Position - 1) End If
GetListSeparator = ListSeparator
End Function
[/vba] Как узнать разделитель для строк? В русской локализациии это двоеточие. Нужно не зависить от неё. Спасибо!
Добрый день! Делаю UDF, преобразующую диапазон с данным в массив {} разделитель столбцов можно узнать так: [vba]
Код
Option Explicit
Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" _ (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Нет, нужно программно. как в первом сообщении. при пошаговом вычислении формулы в окне вычисления видны точка-зяпатые и двоеточия. В американской локали будут другие разделители.
Нет, нужно программно. как в первом сообщении. при пошаговом вычислении формулы в окне вычисления видны точка-зяпатые и двоеточия. В американской локали будут другие разделители.dude
Для начала - зачем Вам это? Что Вы собираетесь делать с текстовым массивом? Если сохранять в файл, то это одевание трусов через голову. При сохранении на разделители влияет параметр local. Если просто вести какие-то расчеты, то тогда вообще без разницы какой там разделитель. Работать мона с любым.
Для начала - зачем Вам это? Что Вы собираетесь делать с текстовым массивом? Если сохранять в файл, то это одевание трусов через голову. При сохранении на разделители влияет параметр local. Если просто вести какие-то расчеты, то тогда вообще без разницы какой там разделитель. Работать мона с любым.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Например, для подобных формул: [code]=СРЗНАЧ(ЕСЛИ(ЕСЛИ(НАИМЕНЬШИЙ(ТЕКСТ(2+{1;2;3;4;5;6;7;8;9;10;10;10;10}+{1:2:3:4:5:6:7:8:9:10:10:10:10};"[>16]""0"";0")+0; СТРОКА(ДВССЫЛ("1:169")));НАИМЕНЬШИЙ(ТЕКСТ(2+{1;2;3;4;5;6;7;8;9;10;10;10;10}+{1:2:3:4:5:6:7:8:9:10:10:10:10};"[>16]""0"";0")+0; СТРОКА(ДВССЫЛ("1:169")))+{1;2;3;4;5;6;7;8;9;10;10;10;10};0)=22;1;0))
Например, для подобных формул: [code]=СРЗНАЧ(ЕСЛИ(ЕСЛИ(НАИМЕНЬШИЙ(ТЕКСТ(2+{1;2;3;4;5;6;7;8;9;10;10;10;10}+{1:2:3:4:5:6:7:8:9:10:10:10:10};"[>16]""0"";0")+0; СТРОКА(ДВССЫЛ("1:169")));НАИМЕНЬШИЙ(ТЕКСТ(2+{1;2;3;4;5;6;7;8;9;10;10;10;10}+{1:2:3:4:5:6:7:8:9:10:10:10:10};"[>16]""0"";0")+0; СТРОКА(ДВССЫЛ("1:169")))+{1;2;3;4;5;6;7;8;9;10;10;10;10};0)=22;1;0))dude
Ну не вводите ее как formulalocal, а вводите как formula, на аглицком и любая локаль ее распознает. Надо ж столько нагородить, да с АПИ-функциями, чтобы просто ввести формулу..
Ну не вводите ее как formulalocal, а вводите как formula, на аглицком и любая локаль ее распознает. Надо ж столько нагородить, да с АПИ-функциями, чтобы просто ввести формулу..KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
dude, зачем вам подобные конструкции? для ввода формул? - в английской локали вместо точки с запятой ставьте точку, вместо двоеточия - точку с запятой и в ячейки вставляйте формулы как formula а не formulalocal или подробнее объясните задачу
dude, зачем вам подобные конструкции? для ввода формул? - в английской локали вместо точки с запятой ставьте точку, вместо двоеточия - точку с запятой и в ячейки вставляйте формулы как formula а не formulalocal или подробнее объясните задачуbuchlotnik
Чисто на заметку, чисто "советы постороннего". Допустим есть диапазон A1:C5 со следующим содержанием: [vba]
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[/vba]т.е. числа от 1 до 15 в 5-ти строках по 3 ячейки (столбца) в строке.
Где-нибудь в стороне, например, в ячейке E1 вводим формулу со ссылкой на указанный диапазон:
Код
=A1:C5
Игнорируя то, что после нажатия Enter ячейка отобразила нам ошибку #ЗНАЧ!, ещё раз входим в ячейку для редактирования (например, по F2) и нажимаем F9:
Код
={1;2;3:4;5;6:7;8;9:10;11;12:13;14;15}
dude, это оно? Это то, что Вы пытаетесь получить свой UDF-кой? И, как видите, локаль сама разобралась со всеми разделителями - и даже нас не спросила
Чисто на заметку, чисто "советы постороннего". Допустим есть диапазон A1:C5 со следующим содержанием: [vba]
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[/vba]т.е. числа от 1 до 15 в 5-ти строках по 3 ячейки (столбца) в строке.
Где-нибудь в стороне, например, в ячейке E1 вводим формулу со ссылкой на указанный диапазон:
Код
=A1:C5
Игнорируя то, что после нажатия Enter ячейка отобразила нам ошибку #ЗНАЧ!, ещё раз входим в ячейку для редактирования (например, по F2) и нажимаем F9:
Код
={1;2;3:4;5;6:7;8;9:10;11;12:13;14;15}
dude, это оно? Это то, что Вы пытаетесь получить свой UDF-кой? И, как видите, локаль сама разобралась со всеми разделителями - и даже нас не спросила Gustav
разделитель столбцов можно узнать так: .......... Как узнать разделитель для строк?
И, кстати же, всякие разделители можно получить прямо в Excel, не прибегая к WinAPI. Их предоставляет свойство Application.International - https://msdn.microsoft.com/en-us....y-excel : [vba]
Код
разделитель строк в массивах - Application.International(xlRowSeparator) разделитель столбцов в массивах - Application.International(xlColumnSeparator)
[/vba]И есть еще отдельный разделитель списков: [vba]
Код
Application.International(xlListSeparator)
[/vba] который в русской локали совпадает с разделителем столбцов и равняется точке с запятой. И в связи с этим вопрос: правильный ли разделитель столбцов Вы достаете выше из Win API, называя его при этом ListSeparator ?
разделитель столбцов можно узнать так: .......... Как узнать разделитель для строк?
И, кстати же, всякие разделители можно получить прямо в Excel, не прибегая к WinAPI. Их предоставляет свойство Application.International - https://msdn.microsoft.com/en-us....y-excel : [vba]
Код
разделитель строк в массивах - Application.International(xlRowSeparator) разделитель столбцов в массивах - Application.International(xlColumnSeparator)
[/vba]И есть еще отдельный разделитель списков: [vba]
Код
Application.International(xlListSeparator)
[/vba] который в русской локали совпадает с разделителем столбцов и равняется точке с запятой. И в связи с этим вопрос: правильный ли разделитель столбцов Вы достаете выше из Win API, называя его при этом ListSeparator ?Gustav
dude, не хотите исполнять указания модератора. Ловите замечание Gustav, Константин, большая просьба повременить с ответами до исправления ТС-ом замечаний (да и вообще в темах с нарушениями Правил форума)
dude, не хотите исполнять указания модератора. Ловите замечание Gustav, Константин, большая просьба повременить с ответами до исправления ТС-ом замечаний (да и вообще в темах с нарушениями Правил форума)_Boroda_
_Boroda_, Александр, внял, учту! Просто мой как бы основной ответ про F9, вроде, был до замечания, но "модератор всегда прав", поэтому понял-понял!
_Boroda_, Александр, внял, учту! Просто мой как бы основной ответ про F9, вроде, был до замечания, но "модератор всегда прав", поэтому понял-понял!Gustav