Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 31.08.2015
Сообщений: 47
1

Поиск значения и переход к ячейке, VBA

27.05.2016, 11:48. Просмотров 3712. Ответов 8
Метки нет (Все метки)

Доброго времени суток

Я задолбалась не могу никак осуществить поиск по книге Excel такой, что первая ячейка с нужным значением активировалась бы.

Задача: книга, в книге листы с названиями месяцев, на них по два столбца на каждую дату месяца, в заголовках, соответственно, сама дата стоит.

Нужно: переход к первой встретившейся ячейке с сегодняшней датой. Чтобы просто перейти на лист и столбец к ней.

Написала костыльный поиск листа через вытаскивание куска сегодняшней даты, получила имя листа, искала на нем. Пробовала так:
Visual Basic
1
Worksheets(Name_sheet).Range("A5:BP5").Find (CStr(Date)).Select
И так
Visual Basic
1
Worksheets(Name_sheet).Range("A5:BP5").Find (CStr(Date)).Activate
И даже так (с range и без него)
Visual Basic
1
Worksheets(Name_sheet).Range("A5:BP5").Cells.Find(What:=Cstr(Date), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
И нифига не работает. Говорит, ошибка синтаксиса и все тут.
Просто
Visual Basic
1
Worksheets(Name_sheet).Range("A5:BP5").Find (CStr(Date))
ничего не выдает. Вообще. Просто как будто не запускала. Пробовала с Cstr и без него. По ходу, совсем дурочка.

Помогите, пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2016, 11:48
Ответы с готовыми решениями:

Поиск значения в ячейке
Добрый день! Имеется некая ячейка, содержащая текст. Имеется таблица 20*20, содержащая ключевые...

Поиск максимального значения в ячейке
Как на листе найти (программно)ячейку с максимальным значением.

Поиск значения в ячейке А1 через Cells.Find
Привет. Никак не могу понять, как через Cells.Find найти значение в ячейке А1. Какой параметр надо...

Автоматический переход к следующей ячейке
Уважаемые специалисты по макросам.Помогите пожалуйста,нужен макрос которой считал бы количество...

8
6612 / 2631 / 488
Регистрация: 19.10.2012
Сообщений: 7,946
27.05.2016, 11:56 2
С Вас файл с датами.
Потому что
Visual Basic
1
Worksheets(Name_sheet).Range("A5:BP5").Find(Date).Select
вполне себе работает...
0
0 / 0 / 0
Регистрация: 31.08.2015
Сообщений: 47
27.05.2016, 11:59  [ТС] 3
Шаблон какой-то такой. Даты генерируются именно так, формулами.
0
Вложения
Тип файла: xlsx Examp.xlsx (60.8 Кб, 4 просмотров)
0 / 0 / 0
Регистрация: 31.08.2015
Сообщений: 47
27.05.2016, 12:14  [ТС] 4
Даже скрин ошибки и полного кода кнопки приложу. На всякий случай.
0
Миниатюры
Поиск значения и переход к ячейке, VBA  
6612 / 2631 / 488
Регистрация: 19.10.2012
Сообщений: 7,946
27.05.2016, 12:20 5
Лучший ответ Сообщение было отмечено YoHnA как решение

Решение

Работает:
Visual Basic
1
2
3
4
5
Sub tt()
Name_sheet = "Sheet1"
Set r = Worksheets(Name_sheet).Range("A1:BK1").Find(Date, , xlValues)
If Not r Is Nothing Then r.Select
End Sub
Только обеспечьте сегодняшнюю дату!
Т.к. там даты дают формулы - то искать нужно в значениях, а не в формулах.
1
0 / 0 / 0
Регистрация: 31.08.2015
Сообщений: 47
27.05.2016, 12:29  [ТС] 6
Теперь другая ошибка.
Может, это из-за того, что excel 2007, а? Синтаксис другой какой-то?
Прилагаю скрин доказательства, что ячейка с датой есть и в диапазон входит.
0
Миниатюры
Поиск значения и переход к ячейке, VBA   Поиск значения и переход к ячейке, VBA  
6612 / 2631 / 488
Регистрация: 19.10.2012
Сообщений: 7,946
27.05.2016, 12:33 7
Так может лист неактивный - у меня ведь сработало.
0
0 / 0 / 0
Регистрация: 31.08.2015
Сообщений: 47
27.05.2016, 12:34  [ТС] 8
Разобралась, большое спасибо!
Да, надо лист предварительно активировать, тогда все бегает)
0
6612 / 2631 / 488
Регистрация: 19.10.2012
Сообщений: 7,946
27.05.2016, 12:37 9
Ну а если не нужно выделять - то можно и не активизировать...
Вообще выделять обычно и не нужно, обычно нужно взять/положить/покрасить и т.д., но не выделять.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2016, 12:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Переход к следующей пустой ячейке в столбце
Всем привет. Знающие, подскажите пож-та каким кодом можно задать условие перехода к следующей...

VBA привязка к ячейке
Можно ли средствами VBA привязать переменную к ячейке, как это можно из самого Excel: d_a1$ =...

Макрос на запись в ячейке значения в зависимости от значения в другой
Можете отредактировать код так, чтобы в зависимости от содержания ячейки, например А1 в ячейке А2...

Отображение формулы в ячейке vba
Добрый день! У меня следующий вопрос. Как с помощью vba записать в ячейку формулу для расчетов,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.