Страницы: 1
RSS
Фильтрация длинных чисел в текстовом формате при помощи макроса
 
Добрый день, уважаемые форумчане

Имеется таблица в которой перечисляются определенные номера, номера отображаются в числовом формате, т.е. набор чисел, а формат ячейки текстовый, чтобы номер не обрезался, к примеру есть номер 30241000001388151

Написал небольшой код, который фильтрует таблицу по столбцу В, исключая из фильтра значение последней записи. Но почему то макрос не фильтрует так как нужно ,исключая из фильтрации значение 30241000001388100
Код
Sub jgjgj()


On Error Resume Next
If ActiveSheet.AutoFilterMode Or ActiveSheet.FilterMode Then 
ActiveSheet.ShowAllData 
End If

ActiveSheet.ListObjects("table").Range.AutoFilter Field:=1, Criteria1:="<> "
   
Range("B4").Select
Selection.End(xlDown).Select
ActiveCell.Select
      
Vf = ActiveCell.Value

ActiveSheet.ListObjects("table").Range.AutoFilter Field:=1, Criteria1:="<>" & Vf

End Sub

Я думаю вся проблема в формате данных чисел
Подскажите как можно исправить данную ошибку
Изменено: pinguindell - 28.04.2017 15:24:32
 
Код
Sub jgjgj()
Application.ScreenUpdating = False
On Error Resume Next
With ActiveSheet.ListObjects("table")
    'отключаем фильтры
    .Range.AutoFilter
    'вычисляем последнюю строку с данными в первом столбце
    lRow = .DataBodyRange(.DataBodyRange.Rows.Count, 1).End(xlUp).Row - .ListRows(1).Range.Row + 1
    'фильтруем сразу по двум критериям (не РАВНО 'пусто' и не СОДЕРЖИТ 'значение последней ячейки')
    .Range.AutoFilter Field:=1, Criteria1:="<>", _
                                Operator:=xlAnd, _
                                Criteria2:="<>*" & .DataBodyRange(lRow, 1).Value
End With
Application.ScreenUpdating = True
End Sub
Изменено: Sanja - 29.04.2017 12:41:52
Согласие есть продукт при полном непротивлении сторон
 
Sanja,сасибо большое !

очень помогло
Страницы: 1
Наверх