29.03.2010 04:23
VVY
 
Цитата:
dantist Привет всем!
Действие халявной программы закончилось, а одна функция ее мне сильно понравилась.
Так вот: когда данные напрямую из 1С копируешь копипастом то цифры больше 1000 форматируются как текст. Сразу говорю, что проблему не решить через формат ячеек, умножение на 1 (прибавление 0). Может кто знает как превратить текст в числа?
Привет.
У меня числом опознается при копировании.
Вообще когда Excel видит число как текст, то должна появиться сверху (левый угол) зеленая закладка, выбираешь диапозон таких "цифр", открываешь данную закладку и там есть в контекстном меню "Преобразовать в число". Может поможет.

Вообще экран покажи, что показывает Excel....
29.03.2010 04:27
dantist
 
Да ничего не отображается, тупо текст и все... :?
29.03.2010 04:28
VVY
 
Цитата:
dantist Да ничего не отображается, тупо текст и все... :?
Файл с примером выложи тогда.
29.03.2010 04:36
dantist
 
Это запросто - пожалуйста...
Вложения
Тип файла: rar 1C.rar (3.5 Кб, 132 просмотров)
29.03.2010 04:57
VVY
 
Цитата:
dantist Это запросто - пожалуйста...
Нужно посмотреть вечером, сразу не могу ответить....
29.03.2010 04:59
andrey_f
 
Цитата:
dantist когда данные напрямую из 1С копируешь копипастом то цифры больше 1000 форматируются как текст. Сразу говорю, что проблему не решить через формат ячеек, умножение на 1 (прибавление 0). Может кто знает как превратить текст в числа?
Чирканул для тебя пару строк, твой пример обрабатывает корректно.
Вставь код в личную книгу макросов, тогда он будет доступен в любой открытой книге экселя.
При необходимости добавь кнопку с кодом на панель.
Выделяешь на листе нужный диапазон и запускаешь.
__________________________________________________
Sub Num1C()
Dim Data As Range
Set Data = Selection
Dim cell As Range
On Error Resume Next
For Each cell In Data
If IsNumeric(cell.Value) Then cell.Value = CDbl(cell.Value)
Next cell
Selection.NumberFormat = "#,##0"
On Error GoTo 0
End Sub
___________________________________________________
29.03.2010 05:38
andrey_f
 
Решить можно еще с помощью текстовых функций самого экселя (см формулу во вложении), а потом преобразовать в число, как писал VVY. Но первое решение намного лучше.
Вложения
Тип файла: rar 1C2.rar (3.9 Кб, 101 просмотров)
29.03.2010 07:13
dantist
 
Цитата:
administrator Чирканул для тебя пару строк, твой пример обрабатывает корректно.
Вставь код в личную книгу макросов, тогда он будет доступен в любой открытой книге экселя.
При необходимости добавь кнопку с кодом на панель.
Выделяешь на листе нужный диапазон и запускаешь.
__________________________________________________
Sub Num1C()
Dim Data As Range
Set Data = Selection
Dim cell As Range
On Error Resume Next
For Each cell In Data
If IsNumeric(cell.Value) Then cell.Value = CDbl(cell.Value)
Next cell
Selection.NumberFormat = "#,##0"
On Error GoTo 0
End Sub
___________________________________________________
Спасибо! :D
29.03.2010 14:37
StrahZapas
 
А я подобные шняжки исправляю заменой.
ctrl+h,
Найти - вставляешь символ, который находится между цифрами. Это похоже на пробел, но, когда пробел ставишь, замена не получается. Ошибка выскакивает. Копирую просто этот пропуск в строку Найти.
Заменить - не заполнять.
И все чудесно преобразовывается в числа.
:roll: примитивно, но работает) по крайней мере с конкретным примером)
29.03.2010 14:52
VVY
 
Цитата:
dantist Это запросто - пожалуйста...
Такое вот извращение (см. приложение).
Вложения
Тип файла: rar 1C.rar (6.6 Кб, 100 просмотров)
Часовой пояс GMT +3, время: 15:18.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.