|
|
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
При выполнении команды над числами с десятичной частью Код: vbnet 1. в итоге вместо точки "." - заменяется на пусть ... запятая. т.е. суслика не видно,а он есть! т.е. вместо 1 111,11 становится 111 111,00 кстати, запятую искать бесполезно - ее нет. А Обычная ручная замена ctrl+h работает как подсказывает логика на 2010 и в 2003 эффект повторяется файл-пример прилагаю. з.ы. это мне сперва txt-файл давали (с расширением xls),в котором числа были отформатированы и сохранены как текст. т.е. были с точками в качестве разделителя "1.111,11". Потому граждане стали присылать и нормальные xls-файл, в котором числа были как числа с но форматированием, а код-то замены точки на пусто остался - в итоге все увеличилось в 100 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 10:01 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
а так? Код: vbnet 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 10:31 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
у Value метода Replace быть не может (этож не vb.net) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 10:44 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Senin Viktor, Ой, прошу прощения, я еще спал, когда писал )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 10:53 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
> Автор: Senin Viktor Ничего не понял. Ты удаляешь из чисел признак дробной части(запятую) естественно из-за этого числа как-бы умножаются на 100. Для отображения у тебя стоит формат "Показывать два знака после запятой", что и делается. Какая задача стоит? P.S. Кстати по Ctrl+H результат аналогичный. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 11:20 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Копайте в сторону региональных настроек отображения десятичного разделителя. то что в ячейке вы видите число "1111,11" еще не значит что это действительно так. я вот открыл файл и вижу "-1744444.18" и т.д. Меняю "несуществующую" точку и вполне логично получаю что все увеличилось в 100 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 11:27 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос> Автор: Senin Viktor Ничего не понял. Ты удаляешь из чисел признак дробной части(запятую) естественно и" Я удаляю ТОЧКУ, и далее, неестественно, исчезает ЗАПЯТАЯ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 11:35 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Диклевич АлександрКопайте в сторону региональных настроек отображения десятичного разделителя. то что в ячейке вы видите число "1111,11" еще не значит что это действительно так. я вот открыл файл и вижу "-1744444.18" и т.д. Меняю "несуществующую" точку и вполне логично получаю что все увеличилось в 100 раз. В вашем случае -1744444.18 , попытайтесь искать (заменить) запятую на пусто: программно и в ручном режиме. м.б. так поймете смысл в том,что в ручном режиме у меня не находит в числе -1744444,18 точку (что логично,т.к. ее там нет - разделитель ведь запятая), а программно - находит и заменяет (что не логично). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 11:49 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
> Автор: Senin Viktor > смысл в том,что в ручном режиме у меня не находит в числе -1744444,18 точку (что логично,т.к. ее там нет - > разделитель ведь запятая), а программно - находит и заменяет (что не логично). Прочитай коментарий к методу в справке. Там написано, что неуказанные параметры берутся из последних указанных параметров, если их не указывали, то параметры берутся из настроек диалога поиска и замены. Теперь идем в диалог поиска и замены и видим, что в варианте замены область поиска только формулы. Дальше идем в IDE VBA и вызываем окно Wathes, делаем Add Wath и в строке Expression пишем - ActiveSheet.Cells(1, 1) . Дальше раскрываем плюсик и внимательно изучаем все свойства имя которых начинаются с Formula. P.S. Рискну предположить, что ексель хранит числа внутри себя с точкой, как тяжёлое наследие иностранного рождения, а показывает так как хочет пользователь, как результат хорошего воспитания. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 12:04 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Может дело в том, что в VBA десятичный разделитель всегда "."? "Использовать системный разделитель" галочка стоит в настройках Excel? VBA все равно что там в Excel c разделителями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 12:06 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
вот как узнать разделитель в VBA Код: vbnet 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 12:14 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Диклевич Александрвот как узнать разделитель в VBA Код: vbnet 1. 2. 3. Лучше так Application.International(xlDecimalSeparator) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 12:59 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Senin Viktor, Или так :) Код: vbnet 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 13:02 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Игорь Горбонос> Автор: Senin Viktor > смысл в том,что в ручном режиме у меня не находит в числе -1744444,18 точку (что логично,т.к. ее там нет - > разделитель ведь запятая), а программно - находит и заменяет (что не логично). Прочитай коментарий к методу в справке. Там написано, что неуказанные параметры берутся из последних указанных параметров, если их не указывали, то параметры берутся из настроек диалога поиска и замены. Теперь идем в диалог поиска и замены и видим, что в варианте замены область поиска только формулы. Дальше идем в IDE VBA и вызываем окно Wathes, делаем Add Wath и в строке Expression пишем - ActiveSheet.Cells(1, 1) . Дальше раскрываем плюсик и внимательно изучаем все свойства имя которых начинаются с Formula. P.S. Рискну предположить, что ексель хранит числа внутри себя с точкой, как тяжёлое наследие иностранного рождения, а показывает так как хочет пользователь, как результат хорошего воспитания. ActiveCell(1,1).Formula="-1744444.18" ActiveCell(1,1).FormulaLocal="-1744444,18" Вопрос (риторический): где ищет ручной поиск, а где программный? Причем программный поиск,как вы правильно заметили, использует ту же область поиска (формулы/значения/примечания) заданного в ручном и не настраивается (//что вообще странно). Т.е. получается ручной поиск ищет в FormulaLocal, программный в Formula. и об этом нигде ни слова, и исправить это с(т)ранное поведение replace никак нельзя. И поэтому, ища запятую, екцель находит точку. з.ы. Есно, глупо искать в числе (числовом значении) точки - ибо это нафиг не нужно. Но вот у меня совпало так, что там,взависимости от типа файла, м.б. и текст со всякими точками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 13:20 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
R DmitrySenin Viktor, Или так :) Код: vbnet 1. 2. В екцеле раньше (до 2003 включительно) можно было задать разделитель, отличный от системного (виндовского). У меня некоторые, гммм, пользователю этим баловались. А ваш алгоритм - только системные берет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 13:24 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Senin ViktorДиклевич Александрвот как узнать разделитель в VBA Код: vbnet 1. 2. 3. Лучше так Application.International(xlDecimalSeparator) Это разделитель Excel, что не всегда одно и то же что и разделитель в VBA. Я привел для VBA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 13:30 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Senin Viktor, Повторюсь: десятичный разделитель Excel в общем случае не равен десятичному разделителю VBA. Это же относится и к датам. Будьте внимательны! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 13:33 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Диклевич Александр, PS. Даже использование системных разделителей в Excel не гарантирует равенства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 13:39 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Диклевич АлександрSenin Viktorпропущено... Лучше так Application.International(xlDecimalSeparator) Это разделитель Excel, что не всегда одно и то же что и разделитель в VBA. Я привел для VBA. Метод Replace объекта Range к VBA отношения не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 13:48 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Senin Viktor, а откуда ж он вызывается как не из VBA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 14:06 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Диклевич АлександрSenin Viktor, а откуда ж он вызывается как не из VBA? Хоть вызывай этот метод из любого языка VBA, vb.net, дельфи,с# и т.п. логика работы метода replace объекта excel.application.worksheet.Range не изменится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 14:16 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 14:33 |
|
||
|
Баг в Excel: команда Replасе ищет не то,что в ней задано и ... находит
|
|||
|---|---|---|---|
|
#18+
Диклевич АлександрSenin Viktor, Судя по 12398914 , логика все-таки меняется. а что там разве написано, что "метод replace объекта excel.application.worksheet.Range " при вызове их разных языков программирования ведет себя по разному? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2012, 15:31 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37748416&tid=2175815]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 463ms |

| 0 / 0 |
