Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/88: Рейтинг темы: голосов - 88, средняя оценка - 4.56
33 / 28 / 9
Регистрация: 28.02.2011
Сообщений: 1,873
1
Excel

Как узнать номер ячейки, после поиска

21.05.2018, 07:42. Показов 16338. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Запустил макрос
Visual Basic
1
2
3
 Cells.Find(What:="2018", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt  :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=   False, SearchFormat:=False).Activate
но мне надо начать поиск со второй строки первой колонки, и если искомое значение найдено, то узнать номер строки, колонки и ячейки..
или надо делать цикл?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2018, 07:42
Ответы с готовыми решениями:

Как узнать номер строки для активной ячейки?
Как узнать номер строки для активной ячейки? спасибо

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

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

Datagridview выделено несколько ячеек в строке - по нажатию правой клав узнать номер первой и последней ячейки
Доброго! А как вызвать контекстное меню, когда в datagridview выделено несколько ячеек в строке и...

7
2739 / 1714 / 778
Регистрация: 23.03.2015
Сообщений: 5,429
21.05.2018, 08:34 2
tmpnik1,
А в каком диапазоне ищите?
0
33 / 28 / 9
Регистрация: 28.02.2011
Сообщений: 1,873
21.05.2018, 08:38  [ТС] 3
Начиная с B2 и до колонки V, а вот кол-во строк может меняться , поэтому наверное надо как-то определять последнюю строку
0
3917 / 2315 / 784
Регистрация: 02.11.2012
Сообщений: 6,158
21.05.2018, 09:17 4
Лучший ответ Сообщение было отмечено tmpnik1 как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
Dim R As Range, FR As Range
   Set R = Range("B2:V100") 'можно указать любой диапазон
   Set FR = R.Find("2018")
   If Not FR Is Nothing Then
       FR.Row ' номер найденной строки
       FR.Column ' номер найденного столбца
       FR.Address 'адрес найденной ячейки
   End If
Добавлено через 1 минуту
Visual Basic
1
2
LR = Cells(Rows.Count,2).End(xlUp).Row 'последняя строка по 2 столбцу
Set R = Range("B2:V" & LR)
1
33 / 28 / 9
Регистрация: 28.02.2011
Сообщений: 1,873
21.05.2018, 09:53  [ТС] 5
Почему то возникает ошибка invalid use of property в линии FR.Row
(может надо тип определить для LR? не знаю..)


начал разбираться, но чё-то не могу совладать с хелпом...
Хотел посмотреть что за аргумент xlUp в .End(xlUp), ставлю курсор на End, выбираю из списка, что .End это свойство...
End Property-> Required to end a Property Let, Property Get, or Property Set procedure.

но где найти help по этому свойству?
0
3917 / 2315 / 784
Регистрация: 02.11.2012
Сообщений: 6,158
21.05.2018, 11:04 6
Up переводится вверх, End(xlUp) переходим вверх до последней заполненной ячейки (это тоже самое что нажать на клавиатуре END и стрелку вверх)
если в коде первая строчка Option Explicit то нужно все переменные объявлять.
1
33 / 28 / 9
Регистрация: 28.02.2011
Сообщений: 1,873
21.05.2018, 11:23  [ТС] 7
В коде нет строчки Option Explicit, но всякие переменные типа
Visual Basic
1
2
3
If Not FR Is Nothing Then
    per_cells = CStr(Cells(FR.Row, FR.Column))
    per_cells = Replace(per_cells, ".2018", "")
и т.д. работают... но если раскомментировать FR.Row ' номер найденной строки, то ошибка.. но всё равно спасибо, работает и ладно..

Насчёт End(xlUp), просто не срабатывает логика
.. отсчёт начинается с верхней строчки и последняя строчка внизу, а "вверх до последней заполненной ячейки..", когда надо вниз

... но тоже как принято, так принято
.. с хелпом ещё как-то разобраться и всё Ok..
0
3917 / 2315 / 784
Регистрация: 02.11.2012
Сообщений: 6,158
21.05.2018, 13:19 8
Цитата Сообщение от tmpnik1 Посмотреть сообщение
просто не срабатывает логика
вы не до конца её разобрали.
Cells(Rows.Count,2).End(xlUp).Row
Rows.Count - количество строк листа, т.е. номер строки самой нижней ячейки .
Cells(Rows.Count,2) - самая нижняя ячейки второго столбца, вот с неё и идем вверх.
1
21.05.2018, 13:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2018, 13:19
Помогаю со студенческими работами здесь

Как узнать номер следующей строки в DataGridView и вывести номер в textbox
Допустим у нас есть таблица и в ней заполнено две строки, тогда в текстбоксе мы должны получить...

Excel. Определение адреса ячейки по условию поиска и адрес следующей после нее
Здравствуйте. Все что смог найти по данному вопросу это как определить адрес формулами, а нужно...

Как узнать объединены ли ячейки
Здравствуйте. Помогите пожалуйста. Как определить объединены ли ячейки. Задача такая перебирая...

Как узнать тип ячейки?
Текст, просто число или формула? Есть какое-нибудь свойство?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru