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

Вообще экран покажи, что показывает Excel....
 
29.03.2010 04:27  
dantist
Да ничего не отображается, тупо текст и все... :?
 
29.03.2010 04:28  
VVY
:
Да ничего не отображается, тупо текст и все... :?
Файл с примером выложи тогда.
 
29.03.2010 04:36  
dantist
Это запросто - пожалуйста...
1C.rar (3.5 , )
 
29.03.2010 04:57  
VVY
:
Это запросто - пожалуйста...
Нужно посмотреть вечером, сразу не могу ответить....
 
29.03.2010 04:59  
andrey_f
:
когда данные напрямую из 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. Но первое решение намного лучше.
1C2.rar (3.9 , )
 
29.03.2010 07:13  
dantist
:
Чирканул для тебя пару строк, твой пример обрабатывает корректно.
Вставь код в личную книгу макросов, тогда он будет доступен в любой открытой книге экселя.
При необходимости добавь кнопку с кодом на панель.
Выделяешь на листе нужный диапазон и запускаешь.
__________________________________________________
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
:
Это запросто - пожалуйста...
Такое вот извращение (см. приложение).
1C.rar (6.6 , )
 
 






- - RSS - - Карта - 👫 Яндекс.Метрика