Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Баг Автофильтра Добавлено: 28.05.08 14:14  

Автор вопроса:  KiZ
Здравствуйте. Буду очень признателен, если найдете баг.
есть переменная Dim databeg As String.
ей присвавается значение из ячейки:
databeg=Cells(3,4)
Потом надо в автофильтре выбрать все НЕ равные databeg:
Selection.AutoFilter Field:=1, Criteria1:="<=" & databeg
  
Так вот не выбирает(... только пустые строки( хотя если прервать макрос и зайти в автофильтр, то при обновлении это условие срабатывает, и все нормально.... может синтаксис не такой?

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Smith



ICQ: ненавижу 

Вопросов: 28
Ответов: 317
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #1
Добавлено: 28.05.08 14:18
А может в этом дело?

Criteria1:="<=" & databeg

<= меньше или равно
<> не равно

Ответить

Номер ответа: 2
Автор ответа:
 KiZ



Вопросов: 27
Ответов: 68
 Профиль | | #2 Добавлено: 28.05.08 14:52
Да не это я опечатался.... не Не равные, а меньше или равно....
короче суть в том, что не так не так не пашет.. хотя ячейки удовлетворяющие условиям и <> и <= есть...

Ответить

Номер ответа: 3
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #3 Добавлено: 28.05.08 15:32
Местоположение укажи.Примерно
    www = Range("C1";).Value
    [b]Range("A1";).Select[/b]
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="<>" & www

Ответить

Номер ответа: 4
Автор ответа:
 KiZ



Вопросов: 27
Ответов: 68
 Профиль | | #4 Добавлено: 28.05.08 15:52
короче в переменной уже содержится строка.... но при вводе ее в критерий она не хочет искаться(
попробывал как ты написал... а же фигня... может с форматами дело? типа текст и число... или дата и число...
(вообще в ячейках формат общий.. хотя и даты)

Ответить

Номер ответа: 5
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #5 Добавлено: 28.05.08 16:30
Я пробовал с числами - работает. Так у тебя даты? почему тогда Dim databeg As String?

Ответить

Номер ответа: 6
Автор ответа:
 KiZ



Вопросов: 27
Ответов: 68
 Профиль | | #6 Добавлено: 28.05.08 16:35
Потому, что число это берется из названия папки(ddmmyy), в которой находится файл:
Function Mac3()
Dim InFile, OutFile As String
Dim SheetName, SheetNameA, VremenF, VremenF1, VremenF2, VremenL As String
Dim databeg As String
Dim A As Variant
InFile = ""
i = 1

    InFile = Application.GetOpenFilename("Exel Files (*.xls), *.xls";)
    If InFile = False Then
    MsgBox ("&#206;&#248;&#232;&#225;&#234;&#224;: &#237;&#224;&#247;&#237;&#232;&#242;&#229; &#231;&#224;&#237;&#238;&#227;&#238;";)
    Exit Function
    End If
    Workbooks.Open Filename:=InFile, _
        UpdateLinks:=0
    VremenL = ActiveWorkbook.Name
    Rows("4:4";).Select
    Selection.AutoFilter
    Selection.AutoFilter
    x = Len(InFile)
    VremenF = Left$(InFile, x - 9)
    VremenF2 = Left$(VremenF, x - 10)
    VremenF2 = Right$(VremenF2, 6)
    VremenF2 = Left$(VremenF2, 2) & "." & Mid$(VremenF2, 3, 2) & ".20" & Right$(VremenF2, 2)
    databeg = VremenF2
    Windows("mac.xls";).Activate
    Sheets("main";).Select
 Selection.AutoFilter Field:=1, Criteria1:="<=" & databeg
    Selection.AutoFilter Field:=5, Criteria1:="N/A"
'....

End Function

Ответить

Номер ответа: 7
Автор ответа:
 KiZ



Вопросов: 27
Ответов: 68
 Профиль | | #7 Добавлено: 29.05.08 13:10
так я и не избавился от этого бага... пришлось избавиться от этого условия, а потом уже после вставки удалять строки, содержащие databeg....

Ответить

Номер ответа: 8
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #8 Добавлено: 26.06.08 10:28
Попробуй переменную превращать в именно дату. Автофильтр срабатывает на сравнение дат, если указывать переменную именно в таком формате.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам