A_Qz 31 / 8 / 4 Регистрация: 21.01.2018 Сообщений: 53 |
||||||||
1 |
||||||||
Excel Замена запятой на точку09.12.2018, 11:23. Показов 20227. Ответов 4 Метки нет (Все метки)
Совсем маленький «зацеп». Несколько лет назад все работало как положено. А сегодня перестало.
А вот обратно:
запятая остается. Только содержимое ячейки переводит в текстовый формат, но запятая без изменении. Пробовал предварительно форматировать в текстовый, но ничего. Создается впечатление, где-то в VBA крепко зашита автозамена точки на запятую. Спасибо за объяснение.
1 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
09.12.2018, 11:23 |
4 |
1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
|
09.12.2018, 17:33 |
2 |
Сообщение было отмечено A_Qz как решение РешениеA_Qz, видимо в настройках экселя Пуск — Настройка — Дополнительно стоит галка Использовать системные разделители, а в винде разделитель запятая. Либо исправить в винде, либо здесь убрать галку и в Разделитель … поставить точку.
1 |
A_Qz 31 / 8 / 4 Регистрация: 21.01.2018 Сообщений: 53 |
||||
09.12.2018, 21:51 [ТС] |
3 |
|||
Спасибо за подсказку, убрал галку — «Использовать системные разделители». Win не трогал. Меняет запятую на точку, но только, если в Excel разделитель — запятая, то для того, чтобы была поставлена точка, ячейку обязательно предварительно нужно перевести в текстовый формат:
0 |
Burk 1813 / 1135 / 346 Регистрация: 11.07.2014 Сообщений: 4,002 |
||||||||
10.12.2018, 05:40 |
4 |
|||||||
A_Qz,
Excel разделитель — запятая, то для того, чтобы была поставлена точка, ячейку обязательно предварительно нужно перевести в текстовый формат: Так надо поставить разделитель — точку и всё работает, привожу макросы, на которых проверял
Добавлено через 24 минуты
0 |
A_Qz 31 / 8 / 4 Регистрация: 21.01.2018 Сообщений: 53 |
||||||||
10.12.2018, 18:40 [ТС] |
5 |
|||||||
Это все понятно. Но мне нужно было, что бы при разделителе — запятая, сохранялась после замены точка. С тем, что бы я мог этот файл экспортировать в другие программы, где разделитель — точка. Ход действий был такой: убрал галку «Использовать системные разделители» и поправил код
В этом коде все работает так, как мне надо. sB была определена как String ранее.
Спасибо ещё раз.
0 |
при замене на экране все нормально, макросом — просто убирает точки, запятые не вставляет. 2 более красиво ставлю автозамену точки на запятую.. как еще? |
|
Меняем числа в текстовом формате с не тем разделителем дробной части на числовой формат? Или я не так понял? |
|
да! правда и я мог не так понять .. |
|
вот файл. поменяйте мне точки на запятые |
|
Ctrl+H, «.» на «,». Лист NEW. |
|
а первый мой пост читали? макросом мне надо! |
|
{quote}{login=слэн}{date=27.05.2008 03:25}{thema=}{post}вот файл. поменяйте мне точки на запятые{/post}{/quote}В результате должны получится числа или должен остаться текст? |
|
нужно макросом и с наибольшей скоростью ибо данных может быть много |
|
На первый вопрос, содержащий «или», ответ «да» непонятен. |
|
на самом деле ответ совершенно верен уж из текста числа я сделаю.. но, подчиняясь , в конечном виде нужны числа, и, значит, будем считать это ответом на первую часть вопроса, после получения которого, ответ на вторую часть будет очевиден |
|
{quote}{login=Лузер™}{date=27.05.2008 04:03}{thema=}{post}На первый вопрос, содержащий «или», ответ «да» непонятен. врят ли — но щас попробуююю |
|
снимаю шляпу — работает. теперь объясните разницу.. |
|
Вариант: |
|
{quote}{login=слэн}{date=27.05.2008 04:18}{thema=}{post}снимаю шляпу — работает. теперь объясните разницу.. |
|
да, возможно. еще раз спасибо |
|
ZVI Пользователь Сообщений: 4328 |
— А символ десятичного разделителя чисел Excel зависит еще и от того, использованы ли системные разделители через меню: Сервис – Параметры – Международные — Использовать системные разделители. Если не учитывать этот факт, то возможны ошибки в определении правильного знака десятичного разделителя для числовых ячеек. Например: При этом Application.DecimalSeparator выдаст точку, а Excel-ю для числовых ячеек нужна запятая. Чтобы не зависеть от подобных накладок я использую такую функцию: ‘ Символ десятичного разделителя — |
zvi, больше интересовала другая особенность: при непосредственном указании Range(Cells(2, 4), Cells(i, 7)).Replace What:=».», Replacement:=»,», LookAt:=xlPart, _ точки убираются, но запятые не появляются при Range(Cells(2, 4), Cells(i, 7)).Replace What:=».», Replacement:=Application.DecimalSeparator, LookAt:=xlPart, _ все нормально, точки меняются на запятые |
|
{quote}{login=ZVI}{date=28.05.2008 01:37}{thema=Re:}{post}— А символ десятичного разделителя чисел Excel зависит еще и от того, использованы ли системные разделители через меню: Сервис – Параметры – Международные — Использовать системные разделители. Если не учитывать этот факт, то возможны ошибки в определении правильного знака десятичного разделителя для числовых ячеек. Например: При этом Application.DecimalSeparator выдаст точку, а Excel-ю для числовых ячеек нужна запятая. Чтобы не зависеть от подобных накладок я использую такую функцию: ‘ Символ десятичного разделителя — |
|
ZVI Пользователь Сообщений: 4328 |
{quote}{login=слэн}{date=28.05.2008 09:47}{thema=}{post}zvi, больше интересовала другая особенность: при непосредственном указании Range(Cells(2, 4), Cells(i, 7)).Replace What:=».», Replacement:=»,», LookAt:=xlPart, _ точки убираются, но запятые не появляются при Range(Cells(2, 4), Cells(i, 7)).Replace What:=».», Replacement:=Application.DecimalSeparator, LookAt:=xlPart, _ все нормально, точки меняются на запятые{/post}{/quote} Функция DecSep() мною была приведена в развитие темы, так как звучало «и с наибольшей скоростью ибо данных может быть много». С этой функцией замена текстовых ячеек на числовые работает в 2-3 раза быстрее, чем Replace. На моем компе — примерно в 2.9 раза быстрее. Для того, чтобы сравнить эффективность 2-х методов замены прилагаю файл небольшой тест-системы с подробными комментариями. |
ZVI, безусловно, Вы нам уже не раз доказывали, что считать массив, обработать, записать гораздо быстрее, чем непосредственная обработка экселем. |
|
ZVI, простите, но я нашел у Вас ошибку. |
|
Придумал метод 3 |
|
ZVI Пользователь Сообщений: 4328 |
{quote}{login=Лузер™}{date=29.05.2008 09:21}{thema=}{post}ZVI, простите, но я нашел у Вас ошибку. Ваша идея с манипуляцией .UseSystemSeparators и .DecimalSeparator замечательная! Смогу подключиться к проблеме уже на выходных. |
Она не совсем не работает. Я эксперементировал с запятой и получил работающий код. На радостях выложил. Продолжил эксперименты с разделителем «%» — не работает. Вернулся к запятой, снова не работает. |
|
{quote}{login=Лузер™}{date=30.05.2008 10:24}{thema=}{post}Она не совсем не работает. Я эксперементировал с запятой и получил работающий код. На радостях выложил. Продолжил эксперименты с разделителем «%» — не работает. Вернулся к запятой, снова не работает. вот-вот но ваш первый код работает(у меня) без проблем.(это с replace и decimalseparator) вообще мне нужно было: файлов может быть до 1000 в конечной таблице строк до 800 000 сейчас работаю с 60 000 строк основной таблицы — для этого требуется обработать около 40 файлов — на генерацию таблицы уходит 27сек |
|
Если есть возможность занести значения в эксель как текст с точкой (если установленный разделитель запятая то любые цифры разделённые точкой воспринимаются общим форматом как текст) ‘функция вал работает только с us-строками |
|
ZVI Пользователь Сообщений: 4328 |
{quote}{login=dl}{date=02.06.2008 08:40}{thema=val и cdbl}{post}Если есть возможность занести значения в эксель как текст с точкой (если установленный разделитель запятая то любые цифры разделённые точкой воспринимаются общим форматом как текст) ‘функция вал работает только с us-строками |
слэн Гость |
#30 05.06.2008 14:51:16 «спешу» предоставить уважаемому сообществу третий способ преобразования, еще более быстрый.. ps мне этот способ не понадобился — я обошелся вообще без преобразования(вернее оно выполняется встроенными средствами иксель при открытии текстового файла). Надо конечно попробовать упомянутый ZVI способ чтения файла в переменную.. Прикрепленные файлы
|
Private Sub CommandButton1_Click()
Dim myCheckBox As MSForms.CheckBox
Dim strRes As String
Dim i As Long
‘Помещение в свойства «ControlTipText» текста.
‘Не знаю, зачем это надо — в коде ниже это не используется.
If CheckBox1.Value = True Then CheckBox1.ControlTipText = «Груша»
If CheckBox2.Value = True Then CheckBox2.ControlTipText = «Слива»
If CheckBox3.Value = True Then CheckBox3.ControlTipText = «Яблоко»
‘Просмотр всех чекбоксов. У чекбоксов имя должно иметь корень «CheckBox».
For i = 1 To 3 Step 1
‘Если стоит флажок.
If Me.Controls(«CheckBox» & i).Value = True Then
‘Запись в переменную «strRes».
strRes = strRes & Me.Controls(«CheckBox» & i).Caption & «, «
End If
Next i
‘Удаление с конца заранее вставленной запятой.
‘Если ни одного флажка не было, то в переменной «strRes» будет пусто и будет ошибка,
‘если попробуем в этом случае использовать команду «Left».
If strRes <> «» Then
strRes = Left(strRes, Len(strRes) — 2)
End If
‘Вставка результата в форму.
UserForm1.TextBox1.Value = strRes
‘Закрытие и выгрузка формы из оперативной памяти компьютера.
Unload Me
End Sub
[свернуть]
6 способов замены точки на запятую в программе Microsoft Excel
Смотрите такжестрок в каждом 15518. Без разделителя. разделителем. Сервис – Параметры потому что запятая ней есть текст.( удачи Вам! выручили, ребята! по столбцам) всю систему) ,После этого задачу, как можно приступать кВ поле замены. В поле нижней границы области,. Жмем на кнопкуМногие пользователи программы Эксель до 20000Лузер™Резьюм: меняем что-то – Международные – Application.DecimalSeparator? И как будет
LevetanМотя
Способы смены точки на запятую
2 — Сцепил то ты в в Excel заменить замене. Для этого«Разделитель целой и дробной«Что» содержащей преобразуемые данные.«OK» сталкиваются с вопросомв конечной таблице
Способ 1: инструмент «Найти и заменить»
: Придумал метод 3 на точку. Разделитель целой ислэн читаться число с: если ты имел: Charlene! столбцы через запятую. Екселе можешь просто точку на запятую, на главной вкладке части»ставим точку. ВТеперь нам нужно присвоить. замены точек на строк до 800Идея такая:
- Лузер™ дробной части указана: три раза да! двумя запятыми ). ввиду Num клавишиНе забудьте вернуть (=СЦЕПИТЬ (D1;»,»;E1)) выделить свои столбцы можно считать решенной. кликните по кнопкеменяем запятую на
- поле ячейкам числовой формат.После того, как мы запятые в таблице. 000Пусть TestString =: Файл забыл :) точка, и прислэнСпасибо всем , и там точка? «всё на круги
- 3 — Полученная мышей, потом Правка Переходим к последнему «Найти и выделить» точку. Жмем на«Чем» Выделяем всю область
- вернулись в окно Это чаще всегосейчас работаю с «1,5518», т.е. уZVI этом установлен флаг: нужно макросом и кто мне ответил тогда просто смени своя», чтобы потом ячейка используется в — Заменить, указываешь — четвертому методу. и в выпадающем кнопку— запятую. Жмем
- преобразованных данных. На«Найти и заменить» связано с тем, 60 000 строк нас некий текст: — «Использовать системные разделители». с наибольшей скоростью и еще ответит язык на англ не иметь «геморроя» расчетах «Что заменить» -Данный способ подойдет в списке выберите «Заменить».«OK» на кнопку ленте во вкладке
, выделяем весь диапазон что в англоязычных
основной таблицы - с разделителем «запятая»
Способ 2: использование функции ПОДСТАВИТЬ
Метод .Replace хотьПри этом Application.DecimalSeparator ибо данных может .Shurovik с EXCEL.Светлана лазарева точку, «На что тех случаях, когда
- В окне, что появится,.«Заменить все»«Главная» ячеек на листе, странах принято отделять для этого требуетсяЗапоминаем текущие настройки и со странностями,
- выдаст точку, а быть многоЯ нашел ответ: В настройках программыCharlene: Мне помогло ctr+H заменить» — запятую. нужно произвести замену в поле «Найти»
- Копируем данные через Блокнот.ищем блок инструментов где нужно будет десятичные дроби от обработать около 40 .UseSystemSeparators и .DecimalSeparator но с ним Excel-ю для числовыхЛузер™ и привожу его измените, как отделять: Да, конечно, спасибо самое простое и Жмешь «Заменить все». так, чтобы формулы введите точку, а в Excel.Выделяем измененные данные в«Число» выполнить замену точки целого числа точкой, файлов — наменяем .DecimalSeparator на то все понятно. ячеек нужна запятая.
- : На первый вопрос, здесь : целую часть от за совет. крутое решение. Спасибо Все. оставались действенными. Выполняется в «Заменить на»Возвращаем прежние настройки Windows. Блокноте. Кликаем правой. В выпадающем списке на запятую. Это а у нас генерацию таблицы уходит запятую или тотФункция DecSep() мноюЧтобы не зависеть содержащий «или», ответ» Необходимо поменять дробной. Подробнее сказатьRomchik
- Виталий!Пользователь удален он следующим образом: — запятую.Последний пункт очень важен. кнопкой мыши, и меняем формат на очень важно, ведь – запятой. Хуже 27сек разделитель, который был
была приведена в от подобных накладок
Способ 3: применение макроса
«да» непонятен. разделитель целой и не могу, ибо: Проблема еще в
- Charlene: Поставь запятую вместоНажмите кнопку «Файл».Нажмите кнопку «Заменить все». Если его не
- в списке выбираем числовой. если вы не
- всего то, чтоdl в TestString
- развитие темы, так я использую такую
Может так пойдет?
дробной части в
не знаю, какая том, что при
- : Добрый день. точки, num delПерейдите в меню «Параметры».Это был первый способ, выполнить, то вы пунктНа этом преобразование данных
- выделите диапазон, то числа с точкой: Если есть возможностькопируем пустую ячейку, как звучало «и функцию:Selection.Replace What:=».», Replacement:=Application.DecimalSeparator, настройках Excel! В
у вас версия изменения запятых наПодскажите пожалуйста, как — это «,»
В появившемся окне перейдите как в Excel не сможете проводить«Копировать» закончено. замена произойдет по не воспринимаются в
занести значения в вставляем значения со
Способ 4: использование Блокнота
с наибольшей скоростью’ Символ десятичного LookAt:=xlPart, _ 2007: Офиса. точки не отражаются
- решить проблему? Требуется, а обычная точка в раздел «Дополнительно». заменить точку на привычные арифметические действия. Или жмем наЗаменить точку на запятую всему листу, что русскоязычных версиях Excel,
- эксель как текст сложением. ибо данных может разделителяSearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,Меню-Параметры Excel-Дополнительно-NoFrost
- в самой диаграмме. чтобы в статье это точка соответственноВ меню «Параметры вставки» запятую. Но возможно, с преобразованными данными. клавиатуре сочетание клавиш в Экселе можно не всегда нужно. как числовой формат.
- с точкой (еслиВозвращаем настройки на быть много». СFunction DecSep() As _снимите галку с: У меня такой Странно, что названия дробные числа разделялисьСплошное недоразумение
- уберите отметку рядом он вам не Кроме того, возможноCtrl+C также при помощи Затем, жмем на Поэтому, именно данное установленный разделитель запятая место. этой функцией замена
- StringReplaceFormat:=False «Использовать системные разделители» вопрос, как можно (в моем случае точкой, а не: пуск-настройка-панель управления - с «Использовать системные подойдет, поэтому переходим некорректно будут работать. макроса. кнопку направление замены настолько
- то любые цифрыСкорость приятно удивляет текстовых ячеек наWith Applicationслэн
Способ 5: изменение настроек Excel
и поставьте нужные изменить точку на названия банков), измененные запятой. В ячейках-то язык и региональные
- разделители». ко второму. и другие программы,
- Возвращаемся в Эксель. ВыделяемПрежде всего, нужно включить«Заменить все»
- актуально. Давайте разберемся, разделённые точкой воспринимаются даже без оптимизации
- числовые работает вIf .UseSystemSeparators Then: на самом деле разделители групп разрядов запятую в длинной в окне Excel, я могу поменять стандарты — вкладкаВ пункте «Разделитель целойСейчас мы разберемся, как установленные на компьютере. диапазон ячеек, где
- макросы и вкладку. как поменять точки общим форматом как кода (см. файл) 2-3 раза быстрее,
- DecSep = Mid$(CStr(0.1), ответ совершенно верен и Разделитель дробных
Способ 6: изменение системных настроек
колонке цифр? сразу отражаются на вручную или функцией «региональные параметры»- кнопка и дробной части» с помощью формулы
- Как видим, существует несколько следует заменить значения.«Разработчик»Как видим, замена выполнена на запятые в
- текст)Поправил метод 2 чем Replace. На 2, 1)
- :) и целых частей.Попробую более развернуто…
- диаграмме, а вот «Найти и заменить», «настройка»- вкладка «числа» замените запятую на заменить запятую на способов замены точки
- Кликаем по нему, если они у успешно. программе Microsoft Excelдля активного листа немного. моем компе -Else
- уж из текстаГрупп разрядов -
- Экспортирую из форекса
запятые — нет. но для построения — поле «разделитель точку. точку в Excel. на запятую в правой кнопкой. В вас не включены.Урок: замена символов в различными способами.
Sub USNumbers()ZVI примерно в 2.9DecSep = .International(xlDecimalSeparator) числа я сделаю.. пробел. Целых и для анализа архив Не знаю почему. диаграммы эти ячейки дробной части» -Кликните по «ОК». Его суть заключается программе Microsoft Excel. появившемся меню вПереходим во вкладку ExcelСкачать последнюю версиюApplication.ScreenUpdating = False: —
раза быстрее.
lumpics.ru
Четыре способа, как в Excel заменить точку на запятую
End Ifно, подчиняясь , дробных частей - котировок для excel. Зато быстрое двойное Excel 2007 не удали там точкуПосле проделанных действий все в том, что Конечно, большинство пользователей разделе«Разработчик»Ещё одним вариантом замены ExcelApplication.Calculation = xlCalculationManualДа, Вы абсолютноДля того, чтобыEnd With в конечном виде запятая. Появляются 4 колонки нажатие по элементу воспринимает. Как быть? и поставь запятую. формулы будут отображаться с помощью специального предпочитают для данной«Параметры вставки»
Первый способ: «Найти и заменить»
. точки на запятуюСуществует несколько проверенных способовDim cell As правы! сравнить эффективность 2-хEnd Function нужны числа, и,В 2003 это из цифр, разделенных с величиной тут Вот пример диаграммы,при слуедующем запуске программой нормально. И оператора мы преобразуем процедуры использовать наиболее
- кликаем по кнопкеЖмем на кнопку является использование функции смены точки на RangeДействительно, у меня методов замены прилагаю
- — значит, будем считать находится в: Сервис-Параметры-Международные. точкой, пример:
- же позволяет вручную где по оси excel — вместо на этом статья данные в других легкий и удобный«Сохранить только текст»«Visual Basic»
- ПОДСТАВИТЬ. Правда, при запятую в программеOn Error Resume получился частный случай файл небольшой тест-системы
- ZVI
это ответом наСкорее всего сейчас1.005 изменить запятые на ординат должны быть точки будет запятая подходит к концу.
Второй способ: формулы
ячейках, а потом инструмент. Либо, жмем сочетание. использовании этой функции Эксель. Одни из Next с лишним For с подробными комментариями.слэн первую часть вопроса, установлены: Групп разрядов
- 1.012 точки. дробные числа сПользователь удален Надеемся, что один
- перенесем их на«Найти и заменить»
- клавишВ открывшееся окно редактора
- замена происходит не
них полностью решаютсяFor Each cell Next.—
- : zvi, больше интересовала после получения которого, — запятая. Целых
- 1.007GaLaXoN точкой.
- : Правой кнопкой -> из предложенных способов необходимый диапазон:
- . Но, к сожалению,
Ctrl+V вставляем следующий код: в исходных ячейках, с помощью функционала In ActiveSheet.Cells.SpecialCells(xlConstants, xlTextValues)Ваша идея сZVI другая особенность: ответ на вторую
- и дробных частей
- 1.007
- :
- Друзья, я обычный
- формат там выбири помог вам добиться
Кликаем по ячейке, которая в некоторых случаях.Sub Макрос_замены_точки_на_запятую() а отображается в
Третий способ: макрос
данного приложения, аOn Error Resume манипуляцией .UseSystemSeparators иЛузер™при непосредственном указании часть будет очевиден
- — точка.»
- 0.996
- Всем доброго времени суток! непродвинутый пользователь, поэтому какой нравится желаемых результатов.
- располагается первой рядом
с его помощьюНа весь диапазон ячеек
- Selection.Replace What:=».», Replacement:=»,»
- отдельной колонке.
- для применения других
- Next .DecimalSeparator замечательная!
- : ZVI, безусловно, Вы
Range(Cells(2, 4), Cells(i, :)После этого яНо работать сУ меня возник объясните, пожалуйста, попроще.
Четвертый способ: настройки
ВиталийАвтор: Вадим Матузок с теми, в не удаётся корректно устанавливаем числовой форматEnd Sub
- Выделяем ячейку, которая станет
- требуется использование сторонних
- cell.Value = Val(cell.Value)Но только и
- нам уже не 7)).Replace What:=».», Replacement:=»,»,Guest воспользовался советом Казанский
- ними как с один вопрос, который Прикрепленные файлы: Чё за тупка?
- выделил столбцы по вертикали,
которых нужно произвести преобразовать данные. Вот тем же способом,Закрываем редактор. самой первой в программ.On Error GoTo она пока, к раз доказывали, что
LookAt:=xlPart, _
fb.ru
Програма excel… как заменить точку на запятую в десятичном числе???
: врят ли - и убрал все числами не получается завел меня в 1.JPG (41.28 КБ) Выделяешь столбец, жмёшь там цена указана замену. тогда на помощь как делали это
Выделяем область ячеек на колонке для выводаСамый простой способ замены 0 сожалению, является частным считать массив, обработать,точки убираются, но но щас попробуююю запятые с помощью из-за этой вот тупик!
KuklP Ctrl+H. Меняешь точку с двумя знакамиНажимаем на кнопку «Вставить могут прийти и ранее. листе, которую нужно измененных данных. Кликаем точек на запятыеNext cell случаем, т.к. не записать гораздо быстрее,
запятые не появляютсяслэн «Ctrl+H, заменить запятую точки, нужно чтобимеются 2 числа,: В настройках Экса на запятую… после запятой, только функцию». другие варианты решения
Как один из способов преобразовать. Во вкладке по кнопке — это воспользоватьсяApplication.Calculation = xlCalculationAutomatic работает, если системный чем непосредственная обработкапри Range(Cells(2, 4),: снимаю шляпу - на пусто. «
была запятая, вручную с десятичными (например
поменяйте разделитель целойМаксим колосов вот сама запятаяВ списке находим функцию проблемы. преобразования точки в«Разработчик»«Вставить функцию» возможностями, которые предоставляетApplication.ScreenUpdating = True разделитель запятая - экселем. Cells(i, 7)).Replace What:=».», работает.Спасибо и удачи изменить это нереально. вместо 0,4 я и дробной части.
: Есть специальная замена, была написана точкой.. «Подставить».Автор: Максим Тютюшев запятые, можно использоватьжмем на кнопку
, которая располагается слева инструментEnd Sub выдает 15518.У меня показывает Replacement:=Application.DecimalSeparator, LookAt:=xlPart, _теперь объясните разницу.. всем Может кто подсказать ставлю 0.4).
Charlene она может работать . а менять
Кликаем по «ОК».Профессионально работающие в «Эксель» изменение настроек программы«Макросы»
от места нахождения«Найти и заменить»’функция вал работаетВозможно, нужно манипулировать преимущество метода 2
все нормально, точкипожалста-а-аслэн решение проблемы?каким образом с: А поконкретнее, пошагово на весь столбец каждый столбец вручнуюДалее возникнет окно функции, люди зачастую сталкиваются Excel.. строки функций.. Но, и с только с us-строками
системым разделителем вместо в 1.89 раза. меняются на запятыеGuest: при замене на
NoFrost ними вообще можно можете рассказать? или линию (выделенное) требует времени.. .
в которое необходимо с необходимостью заменитьПереходим во вкладку
В открывшемся окне представленЗапускается Мастер функций. В ним нужно вести’aeyrwbz свид, тьфу Excel-ного.Но, с учетомЛузер™: Вариант: экране все нормально,: Спасибо огромное The_Prist, работать (умножить, суммировать….иKuklP , помоему она помогите кто знает ввести все нужные запятую (,) на«Файл» список макросов. Выбираем списке, представленном в себя осторожно. Ведь, cdbl работает сСмогу подключиться к моего предыдущего поста,
: Да. По поводу’Sub Макрос1()
макросом — просто помогло. т.д).: Да куда уж так и называется,Evgeny m.
значения: точку (.). Чаще.
из списка открытом окне, ищем при неправильном его
региональными стандартами, то проблеме уже на я решил проэксперементировать DecimalSeparatorWith Range(«A1:D2»)
Как заменить на диаграмме запятую на точку?
убирает точки, запятыеSerge
Спасибо за внимание! конкретней. Прикрепленные файлы специальная вставка. Можно: Сначала выдели всеВ «Текст» вводим первую всего это связаноВыбираем раздел«Макрос замены запятых на функцию использовании будут заменены бишь запятой выходных. и закоментировал следующийя ошибался..Replace What:=»,», Replacement:=».», не вставляет.: Sub Replace_Point()китин
2013-11-20_103552.gif (58.3 КБ) заменить любой (ые) эти ячейки и ячейку, в которой с редактированием файлов
«Параметры» точки»ПОДСТАВИТЬ все точки на
ZVI— код
Сейчас провел небольшие LookAt:=xlPartформат стоит текстовый,Selection.Replace What:=».», Replacement:=»,»,
: а Ctrl+Н найтиKuklP
символ (ы) в сделай их тип нужно провести замену. англоязычной локализации, так.. Жмем на кнопку. Выделяем её и
листе, даже в: —ZVI’ ds = изыскания и выяснил,End With
но пробовал и LookAt:=xlPart, _ «.» заменить на
: Кросс: выделенной области любым числовой с нужнымВ «Стар_текст» вводим запятую, как за рубежомПереходим в пункт«Выполнить» жмем на кнопку
тех местах, гдеВерно, но этоЛузер™ DecSep() чтоEnd Sub
с другими.SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,
«,» не катит?Charlene (ми) символом (ами).
количеством десятичных знаков. беря ее в единый стандарт подразумевает«Дополнительно».
«OK» они действительно нужны, в 4 раза: Она не совсем’ For Each1. VBA всегдаЛузер™нашел два способа:
_GaLaXoN
: Ага, заменила. А Где-то в контекстном Потом зайди в кавычки. использование в качестве
.После этого, выполняется преобразование.
например, в датах. медленнее, чем модифицированный не работает. Я v In x использует системный DecimalSeparator,: А фиг его1 поставить впередиReplaceFormat:=False: так мне и на оси диаграммы, меню помоему. если «Правка» —> «Замена»В «Нов_текст» вводим точку, разделителя десятичных чиселВ разделе настроек точек на запятыеАктивируется окно аргументов функции. Поэтому, этим способом Лузером™ вариант 2. эксперементировал с запятой
planetaexcel.ru
Сумма чисел в которых вместо запятой стоит точка. (Формулы/Formulas)
’ i = хотя в коде знает. Я точно
апостроф — потомEnd Sub не нужно их построенной по таким
надо, посмотрю. и поставь чтобы также беря ее точку, в то
«Параметры правки» в выделенном диапазоне В поле нужно пользоваться осторожно.
С учетом уточненой
и получил работающий InStr(1, v, «.», употребляется только точка. знаю, что DecimalSeparator
все меняет, ноGuest заменять! данным, все равно
Vzotin заменить точку на
в кавычки. время как уснимаем галочку с ячеек.«Текст»
Находясь во вкладке Слэном задачи (наверное,
код. На радостях 0)
Это понятно, т.к. в VBA «.»
слишком муторно.: Если без замены
они должны отображаться
дроби с запятой: Панель управления винды запятую.
Нажимаем «ОК».
нас — запятую. пунктаВнимание! Очень внимательно применяйтенужно ввести координаты«Главная»
уже и выполненной),
excelworld.ru
Вместо запятой — точка, плиз хелп пиплы. Excel.
выложил. Продолжил эксперименты’ If i запятая испоьзуется дляДумаю, что VBA
2 более красиво точки на запятую, с точкой!
выходят. — языки иГеннадий гривинТеперь, зажав ЛКМ нижний И наоборот, для«Использовать системные разделители» данный способ. Последствия первой ячейки столбца,, в группе инструментов эффективнее, пожалуй, было
с разделителем «%» > 0 Then других известных целей. меняет точку на ставлю автозамену то можно изменить
heaven33rusCharlene стандарты. Вот там: В Экселе принята правый угол нашей разделения разряда используют. В активировавшееся поле действия этого макроса где располагаются числа
Заменить точку на запятую
«Редактирование» бы считать весь — не работает. Mid$(v, i, 1)2. Конструкция Application.International(xlDecimalSeparator) точку, имея в
точки на запятую.. настройки.: В параметры экселя/дополнительно/: Прошу пощения. и меняйте. именно такая форма выделенной ячейки, перетаскиваем
запятую, а у
«Разделитель целой и дробной
необратимы, поэтому выделяйте
с точками. Это
на ленте жмем
текстовый файл в Вернулся к запятой, = ds всегда корректно возвращает виду DecimalSeparator, апотом меняю макросомСЕРВИС-ПАРАМЕТРЫ-МЕДУНАРОДНЫЕ, убрать галку убрать галочку сЯ поняла, что
Владислав борисоглебский записи чисел и его до конца
нас — точку. части»
только те ячейки, можно сделать, просто
на кнопку переменную, произвести в
снова не работает.
’ Next
DecimalSeparator используемый в эксель меняет вбашный в нужном диапазоне.. «использовать системные разделители», «системного разделителя» и
кросс не приветствуется.: зачем тебе что менять ничего не нужного диапазона. Вся В этой статьеставим точку. Жмем
planetaexcel.ru
Нечитаемые числа (содержащие точку вместо запятой): как внедрить в вычисления
к которым желаете выделив эту ячейку«Найти и выделить» этой переменной заменуНо работает сТ.е. реально осталось: экселе, вне зависимости DecimalSeparator на свой. точку на точку в «разделитель целой поставить там точку. Просто очень срочно — то менять?
надо, иначе, он область заполнилась данными мы поговорим о на кнопку его применить. на листе с. В появившемся меню
точки на запятую, любым разделителем, еслиx = .Value
стоит галка UseSystemSeparatorsПлюс этого кода — получается запятая и дробной части»
Будетработать с точками надо решить проблемку. excel в числах не сможет считать, с замененными точками. том, как в«OK»Урок: как создать макрос помощью мыши. В
переходим по пункту и затем с операцию спец вставки.NumberFormat = «General»
или нет в независимости от :)
поставить точку, в вместо запятых.Дайте кто-нибудь хоть должна стоять точка! т. е. сумму
Теперь вам надо
Excel заменить точку.
в Microsoft Excel поле«Заменить» помощью .TextToColumns скопировать
выполнять вручную. Даже.Value = x3. Конструкция Mid$(CStr(0.1), региональных настроек юзера.
как еще? «разделитель разрядов»- запятую.
GaLaXoN платную консультацию чтоАксенов никита по столбцам и выполнить следующее:
на запятую сНо, данные сами собойСледующий способ предполагает копирование«Стар_текст». в ячейки как
записав их макрорекордером,Работает, даже если
CyberForum.ru
замена разделяющей точки на запятую
2, 1)слэнЛузер™djeck71: только с точками? ли…
: Вот простой способ строкам… Жми F1Выделить измененные значения.
помощью специальных инструментов,
не изменятся. Копируем данных в стандартныйвставляем точку (.).Открывается окно
числа. я получаю 15518. поставить разделитель дробной
всегда возвращает системый: да, возможно.: Меняем числа в: Здравствуйте! Подскажите пожалуйстаесть возможность пользоваться
Z
решить проблему https://youtu.be/N4o0g7yrhgg и читай, тамНажать CTRL+X. чтобы данный процесс их в Блокнот, текстовый редактор Windows В поле«Найти и заменить»
Или, не мудрствуя, Хотя еще один части «%» :) DecimalSeparatorеще раз спасибо
текстовом формате с , как исправить
точками и запятыми?: Сначала вы -
Садоводческое некомерческое товарищество радуга все написано!Выделить неизмененные значения.
отнимал как можно а после вставляем Блокнот, и изменение
«Нов_текст»
. В поле использовать исходный вариант раз у меняМожно даже так:
В приложении примерZVI не тем разделителем
числа ,которые выглядятPelena дайте ваш пример-хотелку…
: Всем спасибо заОксана
Кликнуть ПКМ. меньше времени. на то же их в этойставим запятую (,).
«Найти» 2 без For сработал код, но.NumberFormat = «General»
для опытов с
: — дробной части на
так 45,567.98 -на: Как вариант
Да вчитайтесь в
ответы. Вопрос на: зачем тебе нужнаВыбрать параметр вставки сВ первом способе мы
место обычным способом. программе.
Полевставляем знак точки Next, так как отследить и повторить.Value = .Value услов. форматированием точкаApplication.DecimalSeparator всегда возвращает числовой формат? Или числа, с которыми200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПОДСТАВИТЬ(A1;».»;»,»)*ПОДСТАВИТЬ(A2;».»;»,»)
предложенные варианты, и самом деле не запятая? в числе
обозначением «123». будем использовать инструментПосле завершения операции рекомендуется
Выделяем в Excel область
«Номер_вхождения»
(.). В поле речь идет о
не удалось. :(
Но все это
— красный, запятая тот разделитель, который
я не так
могут работать формулы
GaLaXoN опишите в каких так прост и в excele вообще-тоВот мы и разобрали
под названием «Найти вернуть настройки Эксель ячеек, в которыхзаполнять не нужно.«Заменить» преобразовании точки в
слэн работает в отношении — желтый.
прописан в Сервис понял?
(45567,98)? Или как
: ооо! вот это настройках XL реально
такие элементарные действия должна стоять точка. второй способ, как и заменить». Но по умолчанию. нужно заменить точку Сама функция будет— знак запятой запятую, а не
: вот-вот :) текста с точкой.А также в – Параметры –слэн изменить настройки , само то! =)))) работаете. знают, наверно, все.
Но если тебе в Excel заменить перед тем какЭтот способ похож на на запятую. Кликаем иметь такой шаблон:
(,). Кликаем по
наоборотно ваш первый
Лузер™ модуле 2 нарытая Международные – Разделитель: да! правда и чтобы читались первые(45,567.98)числаспасибо!Мотя Я тоже столкнулся
надо преобразовать ее точку на запятую. в Excel заменить предыдущий. Только на
правой кнопкой мыши.«=ПОДСТАВИТЬ(адрес_ячейки;».»;»,»)» кнопке—
код работает(у меня): ZVI, простите, но
аццкая функция для целой и дробной
я мог не
(можно было работать
AlexM: В панели управления
с такой проблемой.
в строку и
Переходим к третьему.
точку на запятую
этот раз мы
В контекстном меню
. Жмем на кнопку
«Параметры»ZVI без проблем.(это с
я нашел у возврата системного DecimalSeparator части, даже если так понять ..
с ними в: Если чисел не
— «Язык и Эксель автоматически обновляет с запятой, то
Теперь нужно рассмотреть, как таким образом, стоит
меняем не настройки выбираем пункт«OK»
.
слэн replace и decimalseparator) Вас ошибку.
:) выбран флажок «Использовать :) различных формулах)? Спасибо. два, а много, региональные стандарты»: Числа, курс валют, а
пиши помогу. можно с помощью сказать, что он Excel. А системные«Копировать».
Открываются дополнительные настройки поиска: «спешу» предоставить уважаемому
вообще мне нужноMid$(v, i, 1)
2 слэн. Теперь системные разделители».слэнSerge 007 то можно так
Разделитель целой и центробанк их выкладываетАлександра VBA заменить запятую совершенно не годится
настройки Windows..Как видим, в новой и замены. Напротив сообществу третий способ
было: = ds меняет думаю так: уА символ десятичного: вот файл.: В параметрах поменяйте
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПРОИЗВЕД(—ПОДСТАВИТЬ(A1:A10;».»;»,»)) дробной части. с точкой. От: Сервис-Параметры-Международные. Там есть
на точку в в случае с
Через менюОткрываем Блокнот. Делаем клик ячейке у числа параметра
преобразования, еще болееразархивировать файл
символ только для Вас DecimalSeparator стоял
разделителя чисел Excelпоменяйте мне точки
разделители целой иФормула массивнаяМотя сих и вытекает
окошечко «Разделитель целой Excel. Для этого формулами, так как«Пуск» правой кнопкой мыши, уже вместо точки«Заменить на…» быстрый..получившийся текстовый файл переменной v точкой потому и зависит еще и на запятые дробной части сНа цифровом блоке клавиатуры
: Charlene! проблема. Дальнейшие расчеты и дробной части», нужно: все значения в
входим в
и в появившемся
запятая. Теперь намкликаем по кнопкеблагодаря предоставленному ZVI загрузить в иксель(ямассив х остается прошло :) от того, использованыGuest
точки на запятую (калькуляторе), нажимая запятуюЗачем Вам нужна
цен не возможны. в нем надоПерейти во вкладку «Разработчик». таблице перейдут в«Панель управления»
списке кликаем по нужно сделать подобную
«Формат» тесту, мне не
загружаю с установкой без изменений. Т.е.Можно тупо менять
ли системные разделители: Ctrl+H, «.» на и уберите запятую в Excel ставится
эта «идея фикс»
Не будешь же
поставить запятую (в
Нажать на Visual Basic.
текстовый формат. Итак,
. пункту операцию для всех
.
пришлось себя утруждать
столбцов в тесктовый
работает так: точку на точку, через меню: Сервис
«,». Лист NEW. из разделителей разрядов. точка. Как исправить? со сменой разделителя?
каждые 5 минут окошечке «Использовать системныеВ появившемся окне вставить приступим:
В Панели управления переходим«Вставить» других ячеек столбца.
Открывается окно, в котором
:)
формат, хотя тут
x = .Value при этом ячейка – Параметры –
слэн
djeck71
Виталя константинов
Charlene открывать и выполнять
разделители» убрать «галку», текст, который будетДля начала надо преобразовать
в раздел.
Конечно, вводить для
мы сразу можемсм вложение и можно поиграть.NumberFormat = «General»
переписывается заново, но Международные — Использовать
: а первый мой: Спасибо. Но если: нужно поставить формат: А! Ура! Помогло!
предложенные Вами действия, если она есть, указан под этим
формат ячеек в«Часы, язык и регион»
Кликаем по пункту меню каждого числа функцию установить формат изменяемой
ps мне этот с сепаратором)
.Value = x уже с DecimalSeparator
системные разделители. пост читали?
можно поподробней . ячеек общий Через панель управления! а изменения в
«Ок» или «Применить». списком. текстовый. Для этого
.«Правка» не нужно, есть ячейки, какой бы способ не понадобилсявырезать из этогоА «фор ич
в понимании VBAЕсли не учитыватьмакросом мне надо!
КазанскийЯ :{} , Мотя,
настройках разделителя влияет
Ирина с.
Закрыть окно. выделите нужную область,Переходим в подраздел. В появившемся списке намного более быстрый она до этого — я обошелся массива нужные данные(по в ин х»Что характерно: Код этот факт, то
Лузер™: Ctrl+H, заменить запятую: Кнопка «Офис»-«параметры Excel»-«правописание»-«параметры спасибо! на все остальное.: вставка — символТеперь можно приступать к нажмите ПКМ и«Язык и региональные стандарты» выбираем пункт способ выполнить преобразование.
не была. В вообще без преобразования(вернее
двум параметрам) пустая трата времени. типа Cells.Replace What:=».», возможны ошибки в
: В результате должны на пусто. Заменить
автозамены» в поле
Вы понимаете, пишуЯ решил этуНету замене. в меню кликните.«Заменить»
Становимся на правый нашем случае главное оно выполняется встроенными
заменить точку наПопробуйте с
Replacement:=Application.International(xlDecimalSeparator), LookAt:=xlPart, SearchOrder определении правильного знака
получится числа или
точку на запятую. «заменять» жмем нашу
научную статью, а проблему так:
: Если не хочешьВыделите нужные ячейки. по «Формат ячеек».
В открывшемся окне во. Или же, можно нижний край ячейки, установить числовой формат средствами иксель при запятуюTestString = «1,5518» _
десятичного разделителя для должен остаться текст?djeck71 точку на цифровом правила журнала требуют1 — разбил менять региональные стандарты,Перейдите во вкладку «Разработчик».В появившемся окне, находясь вкладке
просто набрать на
которая содержит преобразованные
данных. Во вкладке
открытии текстового файла).
преобразовать в числовойи
:=xlByRows, MatchCase:=False, SearchFormat:=False, числовых ячеек.
И решение зависит: Спасибо . Этот
блоке, в поле именно такой формат.
содержимое ячейки по
как уже указали,Нажмите кнопку «Макросы».
на вкладке «Число»,
«Форматы»
клавиатуре комбинацию клавиш
данные. Появляется маркер
«Число» Надо конечно попробовать
форматi = InStr(1, ReplaceFormat:=FalseНапример:
от используемого разделителя вариант не подходит
«на» точку на Два дня голову столбцам используя в (я бы не
В появившемся окне выделите выберите «Текстовый» ижмем на кнопкуCtrl+H заполнения. Удерживая левуюсреди наборов числовых упомянутый ZVI способвставить в таблицу v, «,», 0)работает, но корежит- системный десятичный дробной части. т.к. у меня
основном блоке. Все ломаем всей кафедрой.)) качестве разделителя точку. стал, потому что недавно созданный макрос. кликните по «ОК».«Дополнительные настройки».
кнопку мыши, тянем
форматов выделяем пункт
чтения файла вфайлов может бытьВ результате получаем числа делая их знак – запятая;
Поменять на запятую таблица и в сохраняете — и Вы нас очень
(Данные — текст
это влияет наНажмите «Выполнить».После изменения формата ячеек.Открывается окно поиска и его вниз до«Числовой» переменную.. до 1000 числа, но такие: текстом с «правильным»
planetaexcel.ru
- в меню:
Пытаюсь написать код vba методом DDE. Код нацелен на копирование набора столбцов таблицы Excel и вставку его в параметрическую таблицу в программе EES (Engineering Equation Solver). Затем запускается код EES для решения таблицы, генерируя столбцы выходных данных. Затем эти данные копируются и вставляются обратно в файл Excel, содержащий входные данные.
Поскольку я новичок в vba, я использовал в качестве руководства пример, предоставленный EES (выполнение макросов EES из EXCEL).
Проблема возникает, когда данные вставляются обратно в электронную таблицу Excel: код, кажется, игнорирует десятичный разделитель! И мой excel, и EES настроены на работу с запятой в качестве десятичного разделителя, и когда я вручную копирую результаты из EES и вставляю затем, чтобы превзойти, число вставляется нормально, с запятой (также числа из excel правильно вставляются в ESS ).
Однако, когда я устанавливаю код для выполнения этой задачи, такие числа, как «15,47», вставляются в excel как «1,55E + 12» или «1547421377050». Код показан ниже:
Private Sub cmdDDE_Click()
Dim ChNumber As Integer
Dim myShell As String
ChNumber = -1
myShell = frmEESDDE.txtApp.Text
On Error Resume Next
'Copy selected rows into clipboard
Range("B2:G1401").Select
Selection.Copy
Shell_R = Shell(myShell, 1)
If Shell_R <> "" Then
'Initiate DDE
ChNumber = Application.DDEInitiate(app:="ees", topic:="")
If ChNumber <> -1 Then
'Open EES
Application.DDEExecute ChannelNumber, "[Open C:EESTablesolve.ees]"
'Paste data
Application.DDEExecute ChannelNumber, "[Paste Parametric 'Table 1' R1 C1]"
'Solve parametrictable
Application.DDEExecute ChannelNumber, "[SOLVETABLE 'TABLE 1' Rows=1..1400]"
'Copy results
Application.DDEExecute ChannelNumber, "[COPY ParametricTable 'Table 1' R1 C7:R1400 C14]"
'Choose separators
Application.DecimalSeparator = ","
Application.ThousandsSeparator = "."
Application.UseSystemSeparators = False
'Paste results from EES into EXCEL
Application.Paste Destination:=Worksheets("Sheet1").Range("H2:O1440")
Application.UseSystemSeparators = True
'Quit EES and Terminate DDE
DDEExecute ChNumber, "QUIT"
Application.DDETerminate ChNumber
Else
MsgBox "Unable to initiate connection to EES", vbExclamation, "EES DDE"
End If
frmEESDDE.Hide
Else
MsgBox "The application, " & myShell & ", was not found", vbExclamation, "EES DDE"
End If
PS = Как видите, я попытался установить десятичный разделитель на «,», как предлагается в этой ссылке: Вставка десятичных чисел в excel / comma и десятичный разделитель точки, но это тоже не сработало!
Я ценю вашу помощь!
3 ответа
Лучший ответ
Задача решена! Я также разместил вопрос в португалоязычном сообществе stackoverflow и получил очень полезный ответ. С небольшими изменениями он решил мою проблему! Ссылка на решение на португальском языке:
https://pt.stackoverflow.com/questions/74860/vba-excel-n%C3%A3o-reconhece-v%C3%ADrgula-de-dados-externos
Но для тех, кто предпочел бы английскую версию, я постараюсь обобщить, что было сделано для исправления кода:
1- объявить переменные диапазона:
Dim interval As Range 'represent the cells in which info was pasted
Dim Cell As Range 'to allow cell format to be changed
2- после копирования результатов из внешней программы и перед вставкой:
Set interval = Worksheets("Sheet1").Range("H2:O1440") 'set interval to paste the results
interval.NumberFormat = "@" 'set format to text
3- после оклейки:
interval.NumberFormat = "General" 'set format to general
For Each Cell In interval
Cell.Value = FormatNumber(CDbl(Cell.Value), 2) 'set only 2 decimal places
Cell.Value = CDbl(Cell.Value) 'set to double
Next
Остальная часть кода остается как есть.
Особая благодарность Cantoni, который помог с решением в версии pt.
1
Community
13 Апр 2017 в 12:59
Вы также можете попробовать это:
Worksheets("Sheet1").Range("H2").PasteSpecial xlPasteValuesAndNumberFormats
0
R.Katnaan
16 Июл 2015 в 13:47
Вместо того, чтобы вставлять application.paste, попробуйте вставить только значения. т.е.: вместо
Application.Paste Destination:=Worksheets("Sheet1").Range("H2:O1440")
Использовать
Range("H2:O1440").PasteSpecial xlPasteValues
Если это не сработает, проанализируйте вывод как строку.
0
user3476534
15 Июл 2015 в 19:16