о шикарно! То что нужно! В чем была причинаИсправил макрос. Тот вариант, который я исходно написал, был немножко некошерен. Причина, судя по всему, в том, что у Вас английский ёксель. И, т. к. он считает, что в макросе csv сохраняет для себя, сохраняет его в родном формате. А Local как раз нужен, чтобы сказать ему, чтобы не выёбывался и сохранял для нас. Видимо, в Save As ему объяснили, что пользователь ручками данные выгружает не для того, чтобы в ёкселе с ними работать.
Local
Optional
Variant
True saves files against the language of Microsoft Excel (including control panel settings). False (default) saves files against the language of Visual Basic for Applications (VBA) (which is typically US English unless the VBA project where Workbooks.Open is run from is an old internationalized XL5/95 VBA project).
Для меня вообще загадка зачем было делать систему угадывания форматов данных в Excel.А нахрена ты вообще используешь эксель для хранения данных Используй для этого MS SQL Server Express Edition любой версии - он гораздо лучше приспособлен для таких вещей.
Для меня вообще загадка зачем было делать систему угадывания форматов данных в Excel.Открою тайну: обычно, если в поле дата, пользователи работают с ней, как с датой. А в MS разработчики почему-то считают, что пользователям удобнее работать с датой как с датой, а с числами - как с числами сразу после ввода, а не копаясь в глубинах настроек.. А если программист пишет макросы - с форматом данных он как-нибудь разберётся. Не бухгалтер, чай.
пользователям удобнее работать с датой как с датой, а с числами - как с числами сразу после ввода, а не копаясь в глубинах настроекВот у буха и могут возникать приколки, когда деньги 25.10 преобразуются в дату 13/10/25.
Вот у буха и могут возникать приколки, когда деньги 25.10 преобразуются в дату 13/10/25.А нехер в документе точку вместо законной запятой ставить. В английском формате даты/чисел компоненты даты отделяются друг от друга слэшами, целая-десятичная части числа - точкой. Всё логично. В русском - точка и запятая, тоже всё логично. На самом деле, с хранением чисел и дат проблем нет. Проблемы начинаются тогда, когда число сначала преобразовывают в текст, а потом этот текст пытаются преобразовать обратно в число. Вот тогда и приходит в гости пушистый полярный зверь.
А нехер в документе точку вместо законной запятой ставить.Если документ в англоязычную страну отправляется
Если документ в англоязычную страну отправляетсяТы дебил или только прикидываешься Число двойной точности с плавающей точкой хранится в документе в виде четырёх байт, в стандартном формате числа с плавающей точкой. При выводе на экран число преобразуется в текст в формате, совпадающем с системными настройками. То есть, если в региональных настройках компьютера (не экселя!) указана Россия - десятичным разделителем будет запятая, если указана Англия - десятичным разделителем будет точка. Если не веришь - создай документ в экселе, поменяй региональные настройки компьютера и убедись, что десятичный разделитель меняется вместе с настройками. Всё это справедливо также и для дат, и не работает только в том случае, если в настройках ячейки прямо указано, какие именно разделители использовать и в каком порядке выводить компоненты даты. Более того, в экселе при нажатии точки на цифровой клавиатуре в ячейку ВСЕГДА вводится десятичный разделитель числа, заданный в региональных настройках операционной системы.
Ты дебил или только прикидываешьсяДебил это ты. Если бух в России на русской версии Винды и офиса готовит документ для англоязычной страны, то может попытаться вводить деньги как это принято за бугром. Вы уверены, что все бухи знают, как происходить преобразование экселевских доков с умолчательными настройками Т.е. вводятся деньги по-русски: 25,10 без явного задания формата данных, сохраняется документ, открывается в "английской" версии Винды и офиса, деньги преобразятся в 25.10
поменяй региональные настройки компьютераВ нормальных офисах это можно задать прямо при задании формата ячейки, т.е. в одном документе вводить деньги в форматах разных стран и языков. MSO нормальный офис
Если бух в России на русской версии Винды и офиса готовит документ для англоязычной страны, то может попытаться вводить деньги как это принято за бугром.А можно ещё и налоги посчитать так, как там принято, да. =)) Альтернативный подход - он такой.
Вы уверены, что все бухи знают, как происходить преобразование экселевских доков с умолчательными настройками Т.е. вводятся деньги по-русски: 25,10 без явного задания формата данных, сохраняется документ, открывается в "английской" версии Винды и офиса, деньги преобразятся в 25.10Я правильно понимаю, что Вы пытаетесь задвинуть следующую идею: бух в международной фирме не умеет работать с ёкселем, зато знает про разные разделители Ну, блин. Купите ему комп уже.
В нормальных офисах это можно задать прямо при задании формата ячейки, т.е. в одном документе вводить деньги в форматах разных стран и языков. MSO нормальный офис
Всё это справедливо также и для дат, и не работает только в том случае, если в настройках ячейки прямо указано, какие именно разделители использовать и в каком порядке выводить компоненты даты.*FACEPALM*
бух в международной фирме не умеет работать с ёкселем, зато знает про разные разделителиМеждународные фирмы разные бывают, как и бухи. Оне мог запомнить про разделители, но не сообразить, что э/таблица может интерпретировать введённые данные по-своему. Я лично сталкивался с таким, когда вводишь число (вернее, текст только из цифр), а оно переводится в дату. Но понятно, что сразу будет видно, если интерпретация введённого неверна.
в настройках ячейки прямо указано, какие именно разделители использовать и в каком порядке выводить компоненты датыНу не знаю я, как это делается в современных MSO. В LO есть 2 пути: задание формата отображения кодом или просто указать прямо в формате ячейки "Язык", т.е., например, для диапазона ячеек "Язык" (и представление денег) -- Английский, но для данной конкретной ячейки в диапазоне формат денег -- "Русский". Или/и кодом вроде
#,##0.00 [$руб.-419];-#,##0.00 [$руб.-419].
Тем не менее, документ, созданный в русской версии офиса с соблюдением русских правил ввода денег, при открытии в английской версии правильно трансформирует представление в английское У меня просто нет под рукой никакого MSO.Держите:
Это можно считать ответом на Ваш вопросНаверное, можно.
Дебил это ты. Если бух в России на русской версии Винды и офиса готовит документ для англоязычной страны, то может попытаться вводить деньги как это принято за бугром. Вы уверены, что все бухи знают, как происходить преобразование экселевских доков с умолчательными настройкамиНеет, проецировать тупость бухгалтеров на разработчиков ПО это и есть признак дебила. Если бухгалтеру что-то непонятно, ему должен помочь разобраться в проблеме сисадмин или специально обученный общению с бухгалтером специалист.
В нормальных офисах это можно задать прямо при задании формата ячейки, т.е. в одном документе вводить деньги в форматах разных стран и языков. MSO нормальный офисЯ, кажется, уже написал, что в MSO любой формат ячейки можно задать в явном виде - указать разделитель, количество незначащих нулей в числе, цвет для положительного, отрицательного значения и нуля, и т.п. В Excel настраивается всё!
Международные фирмы разные бывают, как и бухи.Что-то мне подсказывает, что в серьёзных международных фирмах тупые бухи надолго не задерживаются.
в MSO любой формат ячейки можно задать в явном виде - указать разделитель, количество незначащих нулей в числе, цвет дляЯ имел в виду немного другое. Если речь идёт о деньгах, то в LO Calc можно просто выбрать "Язык" (страны) для ячейки и региональные настройки этой страны зададутся автоматически, к ним можно выбрать и определённый формат отображения. Задание формата отображения в явном виде так же возможно, т.е. 2,5 способа одновременно.
положительного, отрицательного значения и нуля, и т.п. В Excel
настраивается всё!
Я имел в виду немного другое. Если речь идёт о деньгах, то в LO Calc можно просто выбрать "Язык" (страны) для ячейки и региональные настройки этой страны зададутся автоматически, к ним можно выбрать и определённый формат отображения. Задание формата отображения в явном виде так же возможно, т.е. 2,5 способа одновременно.Денежных форматов в MSO зашито просто дохуя. Поставить нестандартный разделитель тоже можно. Только вот жёстко задавать формат числа конкретной страны для ячейки это очень неудобно. С одной стороны неадекват, настроивший так ячейку, получит самоуспокоение в виде того, что будет видеть в качестве разделителя точку, а с другой стороны все адекватные люди будут подозревать в такой ячейке ошибку: число в ней похоже то ли на дату, то ли на текст. Кому оно надо
Пока набралось 18 штук. Думаю, к концу месяца забабахаю правдивый обзорчик по LO, чтобы местным пенгванутым жилось веселее.Я так понимаю, это ошибки с вашей точки зрения о прекрасном, а не о том какой офис реально должен быть
Только вот жёстко задавать формат числа конкретной страны для ячейки это очень неудобноЯ имел ввиду не число, а деньги, т.е. будет автоматом проставляться и название валюты.
Я имел ввиду не число, а деньги, т.е. будет автоматом проставляться и название валюты."Деньги" это и есть один из числовых форматов. С префиксом ($100) или суффиксом (100 р.) для обозначения валюты. Ещё раз повторюсь: в экселе есть, наверное, все существующие на сегодняшний день денежные форматы. По крайней мере, их там реально дохуя - как минимум, больше ста видов. Так что с этим всё в порядке.
в экселе есть, наверное, все существующие на сегодняшний день денежные форматы. По крайней мере, их там реально дохуя - как минимум, больше стаУвы, я проверил Excel 2007 и увидел очень бедные возможности по настройке отображения чисел по сравнению с LO4, можно использовать только встроенные форматы, нельзя произвольно устанавливать символ разделителя разряда. Более того, даже если я выберу один из "английских", всё равно останется запятая в "русском" офисе. Как мне в Excel 2007 задать отображение положительных денег зелёным, а отрицательных -- синим Вы же понимаете, что если у меня строка залита красным, то выделить отрицательное число цветом не получится
видов. Так что с этим всё в порядке.
нельзя произвольно устанавливать символ разделителя разряда.Да ты что!
###'###'### - 123'456'789
###-###-### - 123-456-789
Как мне в Excel 2007 задать отображение положительных денег зелёным, а отрицательных -- синим Вы же понимаете, что если у меня строка залита красным, то выделить отрицательное число цветом не получитсяСтрока для задания формата выглядит примерно так:
[Зеленый]# ##0,00_)р.;[Синий](# ##0,00)р.;0,00_)р.А про формат десятичной точки я тебе уже писал. Это единственное, что всегда берётся из системных настроек.
и будет Вам счастье. Правда, это только в том случае, если Вам нужно исправить. Если Вам нужно порассуждать о черезжопности экселя, естественно, это не поможет.