Страницы: 1
RSS
В ячейках оставить только текст
 
Здравствуйте.  
 
Задача такая:  
Ячейки 1-го столбца содержат смешанную информацию(цифры+текст)  
Нужно оставиить в ячейках только текст (в ячейках без заливки)  
 
Нашел на форуме код :  
Public Function ТолькоТекст(смесь As String)  
Dim i As Long  
For i = 1 To Len(смесь)  
Select Case Asc(Mid(смесь, i, 1))  
Case 32 To 47  
ТолькоТекст = ТолькоТекст & Mid(смесь, i, 1)  
Case 58 To 255  
ТолькоТекст = ТолькоТекст & Mid(смесь, i, 1)  
End Select  
Next  
End Function  
 
Пишу процедуру,которая не работает:  
 
Sub Убрать_Цифры()  
Dim cell As Range  
r = Cells(Rows.Count, "A").End(xlUp).Row  
For Each cell In Range("A1:A" & r)  
If cell.Interior.ColorIndex <> xlNone Then  'ЕСЛИ НЕТ ЗАЛИВКИ  
cell = ТолькоТекст                          'ВЫЗЫВАЮ ФУНКЦИЮ  
End If  
Next  
End Sub  
 
 
Что делаю не так?
 
Здравствуйте!  
If cell.Interior.ColorIndex <> xlNone Then 'ЕСЛИ НЕТ ЗАЛИВКИ  
Вы же сами себе противоречите: = xlNone - вот так нет заливки, А у Вас получается, что, если ячейка имеет любую заливку. :-)
 
{quote}{login=qw}{date=02.12.2010 07:25}{thema=В ячейках оставить только текст}{post}Здравствуйте.  
 
Задача такая:  
Ячейки 1-го столбца содержат смешанную информацию(цифры+текст)  
Нужно оставиить в ячейках только текст (в ячейках без заливки)  
 
Нашел на форуме код :  
Public Function ТолькоТекст(смесь As String)  
Dim i As Long  
For i = 1 To Len(смесь)  
Select Case Asc(Mid(смесь, i, 1))  
Case 32 To 47  
ТолькоТекст = ТолькоТекст & Mid(смесь, i, 1)  
Case 58 To 255  
ТолькоТекст = ТолькоТекст & Mid(смесь, i, 1)  
End Select  
Next  
End Function  
 
Пишу процедуру,которая не работает:  
 
Sub Убрать_Цифры()  
Dim cell As Range  
r = Cells(Rows.Count, "A").End(xlUp).Row  
For Each cell In Range("A1:A" & r)  
If cell.Interior.ColorIndex <> xlNone Then  'ЕСЛИ НЕТ ЗАЛИВКИ  
cell = ТолькоТекст                          'ВЫЗЫВАЮ ФУНКЦИЮ  
End If  
Next  
End Sub  
 
 
Что делаю не так?{/post}{/quote}  
cell = ТолькоТекст (cell.Value)
Спасибо
 
ну да Юрий прав  
If cell.Interior.ColorIndex = -4142 Then  'ÍÅÒ ÇÀËÈÂÊÈ
Спасибо
 
Не совсем понял,конечно...  
 
от R Dmitry:  cell = ТолькоТекст (cell.Value) - работает.  
Т.е. где заливка есть,там цифры убираются; где заливка есть - цифры остаются  
 
Это и требовалось...
 
{quote}{login=qw}{date=02.12.2010 07:50}{thema=}{post}где заливка есть,там цифры убираются; где заливка есть - цифры остаются{/post}{/quote}  
Прикольно :-)
 
Самому прикольно)  
Читать:  
... где заливка есть,там цифры убираются; где заливки нет - цифры остаются  
Забыл поблагодарить: Спасибо большое за быстрый ответ
 
Поставили чуть другую задачу и я опять в тупике.  
 
Нужно из ячеек удалить цифры и точки ПЕРЕД текстом,сам текст конечно остается.  
 
Просьба подсобить кто чем может.
 
В Вашем примере нет точек. Как они расставлены?
 
Вот файл
 
Public Function ТолькоЦифры(смесь As String)  
Dim i As Long  
   For i = 1 To Len(смесь)  
       Select Case Asc(Mid(смесь, i, 1))  
       Case Is < 48, Is > 57  
           ТолькоЦифры = ТолькоЦифры & Mid(смесь, i, 1)  
       End Select  
   Next  
End Function  
 
Sub Убрать_Цифры()  
Dim cell As Range  
r = Cells(Rows.Count, "A").End(xlUp).Row  
   For Each cell In Range("A1:A" & r)  
       If cell.Interior.ColorIndex <> xlNone Then  'НЕТ ЗАЛИВКИ  
           cell = Replace(cell, ".", "")  
           cell = ТолькоЦифры(cell.Value)  
       End If  
   Next  
End Sub
 
Спасибо Вам большое ,Юрий ,очень выручили
Страницы: 1
Читают тему
Наверх