Страницы: 1
RSS
Знак минус в конце отрицательных чисел
 
Знак минус из конца числа нужно перебросить в начало, чтоб число считалось числом.  
 
Мой вариант:  
     
Sub Minus_End()  
'  
' Minus_End Ìàêðîñ  
' Óáèðàåò ìèíóñ â êîíöå îòðèöàòåëüíûõ ÷èñåë  
'  
' Ñî÷åòàíèå êëàâèø: Ctrl+d  
'  
 
   Dim r As Range  
   Dim j, ColMax  
   j = 1  
   Set r = Selection  
 
   ColMax = Selection.Columns.Count  
   'If ColMax >= 500 Then ColMax = 500  
   'End If  
     
     
Do While j <= ColMax  
   r.Columns(j).Select  
   Selection.TextToColumns DecimalSeparator:=",", _  
   ThousandsSeparator:=".", TrailingMinusNumbers:=True  
   j = j + 1  
Loop  
       
   Range("A1").Select  
 
End Sub  
 
Идея в следующем: берем произвольно выделенный диапазон, в каждой колонке этого диапазона выполнить преобразование.  
 
Чего не получилось: не жрет пустые колонки (это не важно),  
-1  
1-  
1,09-  
5,02  
-7,05  
В дробных числах (которые уже числа) меняет разделитель:  
-1  
-1  
-1,09  
5.02  
-7.05  
 
Подскажите, пожалуйста, как это победить?
 
см файл
Редко но метко ...
 
оно!  
благодарю!!!
 
Вопрос открыт)  
 
 16.666,67  
  9.446,67  
 25.089,47-  
    119,91-  
 
если в числе есть разделители разрядов, то число не обрабатывается.  
 
Макрос вложенный предложенный GIG_ant'ом
 
upd  
   
Вопрос открыт)  
 
16.666,67  
9.446,67  
25.089,47-  
119,91-  
 
если в числе есть разделители разрядов, то число не обрабатывается.  
 
Макрос предложенный GIG_ant'ом  
   
Sub Minus_End_1()  
   Dim r As Range, inRange As Range  
   On Error Resume Next  
   Set inRange = Selection.SpecialCells(xlCellTypeConstants, 23)  
   If Err.Number <> 0 Then Exit Sub  
   For Each r In inRange  
       If IsNumeric® Then r.Value = CDbl(r.Value)  
   Next r  
End Sub
Страницы: 1
Читают тему
Наверх