Страница: 1 |
Страница: 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
Местоположение укажи.Примерно
[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 ("Îøèáêà: íà÷íèòå çàíîãî"
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
Попробуй переменную превращать в именно дату. Автофильтр срабатывает на сравнение дат, если указывать переменную именно в таком формате.