Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/40: Рейтинг темы: голосов - 40, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 11

Как сделать через VBA поиск по полю "Дата" в Excel не полной даты?

31.01.2012, 09:32. Показов 7896. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Буду очень признателен за помощь, прошу прощения если это обсуждалось, но поиск не работает, полистал сколько смог но...
Вопрос:
Как сделать через VBA поиск по полю "Дата" в Excel не полной даты (например:"01.12.2005"), а в виде месяц-год (например "12.2005"). Через Ctrl-F все нормально ищет, а через Selection.Find у меня не получается.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.01.2012, 09:32
Ответы с готовыми решениями:

Поиск даты в разных книгах Excel через VBA
Всем привет! Помогите пожалуйста! Есть файлы Excel, каждый файл относится к определенной компании, в файле есть листы, в каждом листе в...

Получение полной даты (дата и время) из двух DateTimePicker
Нужно ввести дату и время. Делаю таким образом: TDateTime dates,times,result; dates = DateTimePicker1->Date; times =...

Как сделать в execl поиск из исходных данных через vba
Как сделать в execl поиск из исходных данных через vba Но что бы он работало так я пишу в форму значение. Значений может быть несколько...

11
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
31.01.2012, 10:20
При вводе даты в ячейку эксель ее конвертирует во внутреннее представление - число дней с заданной даты. Это можно проверить, изменив формат ячейки на числовой (01.12.2005 -> 38687). Если изменить формат ячейки перед вводом даты на "текстовый", преобразования не производится. Это позволит тебе искать то, что нужно, но в таком случае невозможно будет выполнять множество операция над датой - сравнивать, какая больше, на сколько дней, и т.д. Мне лично победить этот глюк не удалось. Кстати, Selection.Find ищет в выделенном фрагменте (Selection) - убедись, что искомое значение выделено. Лучше использовать вместо Selection Cells (поиск по всем ячейкам) или поддиапазон для ускорения поиска (Range("A:A"), например)
0
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 11
31.01.2012, 11:51  [ТС]
Цитата Сообщение от Johny Walker
При вводе даты в ячейку эксель ее конвертирует.......
Да я в курсе, но почему через Ctrl-F получается? Т.е. я хочу сказать что не все команды что есть в EXcel может воспроизвести VBA?
0
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 11
31.01.2012, 12:26  [ТС]
В догонку "детский вопрос" не по теме, но чтобы не засорять форум зааодно задам здесь:
как сослаться на активную ячейку в неактивном листе без указания ее координат?
Т.е. если лист активный то х=ActiveCell, а если не активный то что-то типа
х = Sheets("Лист1").ActiveCell-??????
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
31.01.2012, 13:23
Поиск по форумам:

[bold]http://relib.com/search/[/bold]

0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
31.01.2012, 13:59
Может поможет:

Столбец с датами, сверху АВТОФИЛЬТР

02.12.05
03.12.05
04.12.05
05.12.05
06.12.05
07.12.05
08.12.05
09.12.05
15.01.06
16.01.06
17.01.06
18.01.06
19.01.06
10.12.06
11.12.06
12.12.06
13.12.06
14.12.06

можно создать условие в автофильтре
[bold]больше 06.12.05
и
меньше 17.01.06[/bold]

и получаем

07.12.05
08.12.05
09.12.05
15.01.06
16.01.06

Visual Basic
1
2
3
4
5
6
Sub Макрос1()
 
    Selection.AutoFilter Field:=1, Criteria1:= "06.12.05", Operator:=xlAnd, _
        Criteria2:="<17.01.06"
 
End Sub
0
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 11
31.01.2012, 14:29  [ТС]
Цитата Сообщение от poiskxxx
Может поможет:

АВТОФИЛЬТР
автофильтр пробовал, но очень тормозной вариант, отказался от него.
А как с моим вопросом по поводу: "как сослаться на активную ячейку в неактивном листе без указания ее координат?"
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
31.01.2012, 14:41
Не очень, конечно - но все-же.

Visual Basic
1
2
3
4
Private Sub Worksheet_Deactivate()
Cells(1, 1) = ActiveCell.Row
Cells(2, 1) = ActiveCell.Column
End Sub
когда переходишь с этого листа на другой,
координаты активной ячейки записываются
Cells(1, 1) и Cells(2, 1)
0
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 11
31.01.2012, 16:23  [ТС]
Нет, это не то или ты меня не понял.
Я хотел узнать есть ли что-то типа
х = Sheets("Лист1").??..ActiveCell..??
я парюсь но найти не могу. Т.е. я могу
конечно сделать так:
Visual Basic
1
2
Sheets("Лист1").activate
x=ActiveCell
но хотел узнать есть ли прямая команда.
По поводу поиска по дате на другом форуме
предложили хороший-быстрый вариант поиска,
кому интересно выкладываю:
Visual Basic
1
2
3
4
5
6
7
Dim curCell As Range
For Each curCell In Columns(1).SpecialCells(xlCellTypeConstants).Cells
   If curCell.Value Like "*11.2005" Then
      Range(curCell.Address).Select
      Exit For
   End If
Next curCell
0
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 11
31.01.2012, 19:40  [ТС]
А вот то что надо прислали:
Visual Basic
1
2
3
4
5
6
7
Set iCell = Cells.Find(What:="12*2005", LookAt:=xlWhole)
 
If Not iCell Is Nothing Then
   MsgBox "Искомая дата находится в ячейке " & iCell.Address, , ""
Else
   MsgBox "Искомая дата не найдена", , "Ошибка пользователя !!!"
End If
0
Сумрак
31.01.2012, 20:24
для VB и VBA есть операторы сравнения, один из них LIKE "*"
Можно сравнить по if montch(Cells(1,1).value) and Year(Cells(1,1).value)...
ActiveCell это Активная ячейка активного листа активной книги. Она может быть только в 1 экземпляре.
Это просто напрвления , где искать...
проще обьявить в модуле или форме Range
... хотя избитая тема на форуме повторюсь...
Visual Basic
1
2
3
4
Dim R as range
set R= Activecell
ActiveWorkbook.sheet(2).activate
ActiveSheet.Cells(1,1).value=R.Value
.. только так...
0 / 0 / 0
Регистрация: 27.01.2012
Сообщений: 11
01.02.2012, 12:35  [ТС]
Все понял. Благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.02.2012, 12:35
Помогаю со студенческими работами здесь

Поиск в Word через Excel vba
Здравствуйте форумчане. Пишу скрипт, который должен находить совпадения между таблицей в Excel и Word документом ( Например: У меня есть...

Как в Excel сделать поиск через гиперссылку для поиска значений в Word
У меня есть таблица со списком с определенными номерами в Excel и Word документы 132 файла, в них около 5000 документов с этими номерами ,...

Поиск и ввод данных в таблицу Excel через форму VBA
Добрый день! По работе столкнулась с необходимостью заполнять большие таблицы, в которых сложно найти нужную строку. Решила сделать...

Поиск в ленточной форме по полю Дата
Добрый день! Есть ленточная форма Договора. В ней с помощью фильтра проводим поиск по определенным полям. Поиск по тестовому полю: ...

как сделать что бы в поле начало была дата начала месяца автаматически присваевалась а в конец конечное число даты.
У меня есть поле с названием (отчетный период начало) и (отчетный период конец) как сделать что бы в поле начало была дата начала месяца...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru