Страницы: 1 2 След.
RSS
VBA. Как определить номер строки искомой ячейки в умной таблице?
 
VBA. Как определить номер строки искомой ячейки в умной таблице?
Таблица может быть неизвестно на какмо листе
и может использовать стоит Find функцию но используя её не выходит собрать рабочую формулу
Изменено: tod2020 - 15.07.2017 14:23:00
 
https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables
Согласие есть продукт при полном непротивлении сторон
 
Sanja, ты хоть проверяешь результат своей деятельности? там про поиск таблицы а не поиск в таблице
 
С чего вдруг ТЫ мне 'тыкаешь'? Мы знакомы?
А по вопросу, по ссылке есть ВСЯ необходимая информация. Для тех кто сам ее хочет найти, а не халяву (как это у Вас принято) получить
Изменено: Sanja - 15.07.2017 14:00:42
Согласие есть продукт при полном непротивлении сторон
 
Код
MsgBox WorksheetFunction.Match("помидоры", [table1[имя]], 0)
Спасибо
 
ок
Изменено: tod2020 - 15.07.2017 14:21:30
 
R Dmitry, как сделать обращение к таблице которая на какомто другом листе находиться используя функцию например FIND
 
Жамый tod2020, ничего-то вы не видели и не слышали, тем более не читали, судя по вашим ответам.
Ибо "вопросики" ваши выдают с головой, что ничего вы не пробовали сами делать, а просто дожидаетесь полностью "готового решения".
А тут на такое смотрят ну очень косо  :)

Особенно мне нравится про "таблицу, которая где-то там находится" )))) Ну и чем ПОИСК() хуже для вас, чем .find() - тоже непонятно...
Изменено: AndreTM - 15.07.2017 14:27:53
 
AndreTM,
Господа, косо-глядящие,
1. я сначало поконструировал различные схемы - не вышло
2.посомтрел и то что саня кидал ссылку (которую в гугле нашел валяющуюся. эта сслыка равносильна ссылке GOOGLE.COM), которую я и сам встречал и закрыл потомучто увидел что там поиск таблиц а не поиск внутри таблици ( ну может английского не хватило чтобы увидет что сная увидел)
3.смотрел ютуб англоязычный и русский(в русском нету) и там не совсем то дают, циклом чаще предалгалось поиск выполнить
4.... вообщем не нашел и пришел сюда
А ваши выводы не верны что нахаляву. А так я много кому помогал в жизни за даром в 10.000 раз больше чем здесь мне помогают
Вообщем: глядите ровнее на меня
А у кого дефицит добра, того я не заставляю, тот может (как вариант) мимо молча пройти не обранив букв
Изменено: tod2020 - 15.07.2017 14:44:51
 
Цитата
tod2020 написал: у кого дефицит добра
С добром здесь дефицита нет.
У Вас дефицит с вежливостью, я Вам об этом уже намекал. Специально пересмотрел все Ваши темы - ни одного 'Здравствуйте', и очень редко 'Спасибо'.
Вопросы воспитания, однако...

Цитата
tod2020 написал: Таблица может быть неизвестно на какмо листе
Проверяйте
Код
Sub RowNumber()
Dim sh As Worksheet
Dim tbl As ListObject
Dim iCell As Range
On Error Resume Next
iStr = InputBox("Введите текст для поиска:", "Что ищем?", "свекла")
For Each sh In Worksheets
    For Each tbl In sh.ListObjects
        Set iCell = tbl.DataBodyRange.Find(iStr)
        If Not iCell Is Nothing Then
            MsgBox "Имя листа: " & sh.Name & vbCrLf & _
                    "Имя таблицы: " & tbl.Name & vbCrLf & _
                    "Номер строки на листе: " & iCell.Row & vbCrLf & _
                    "Номер строки в таблице: " & iCell.Row - tbl.ListRows(1).Range.Row + 1
        End If
    Next
Next
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
Вопросы воспитания, однако...
Это у меня настроение потмоучт такое часто что вежливость и прочие церемонии у меня не проговариваются
 
Цитата
tod2020 написал: Это у меня настроение потмоучт такое
Ну, ну... :D
Цитата
'Ну, год еще, ну, два. А дальше что? Дальше ваши рыжие кудри примелькаются, и вас просто начнут бить'
Согласие есть продукт при полном непротивлении сторон
 
Цикл не нужен нужна конструкция с FIND
Есть такая конструкция
Код
range.("Table1").Find(What:= Свекла).Adress

и она выдаст адрес ячейки ан листе а мне нужен адрес ячейки(строки) в таблице
 
Цитата
Sanja написал:
Цитата'Ну, год еще, ну, два. А дальше что? Дальше ваши рыжие кудри примелькаются, и вас просто начнут бить'
Ржака :)) да и правда наверное:)
Изменено: tod2020 - 15.07.2017 15:06:32
 
Цитата
tod2020 написал: нужна конструкция с FIND
Цитата
Sanja написал:Set iCell = tbl.DataBodyRange.Find(iStr)

Тема называется
Цитата
Как определить номер строки искомой ячейки в умной таблице?
Это тоже из Вашего раннего
Цитата
Таблица может быть неизвестно на какмо листе
Мой макрос ищет значение во всех умных таблицах всех листов и выдает номера строк (как на листе так и в таблице) первого найденного значения
ЧТО еще нужно?
Согласие есть продукт при полном непротивлении сторон
 
"Номер строки в таблице" = (Номер строки на листе - Номер "строки заголовка" таблицы) = (Номер строки на листе - Номер строки начала области данных таблицы + 1) = ...
 
Цитата
tod2020 написал: нужна конструкция с FIND
AndreTM, что-то Вы не то предлагаете. Где здесь FIND  :D  
Согласие есть продукт при полном непротивлении сторон
 
Цитата
AndreTM написал:
"Номер строки в таблице" = (Номер строки на листе - Номер "строки заголовка" таблицы) = (Номер строки на листе - Номер строки начала области данных таблицы + 1) = ...
Андрей понял что я щас пытался понять ))
 
что означает  (1) в
tbl.ListRows(1).Range.Row
?
Номер строки номер на листе которой? Ровно так коряво и написано наверно в коде как я щас вопрос задал. но это не код такой это язык такой
Изменено: tod2020 - 15.07.2017 16:02:52
 
Цитата
tod2020 написал: Ровно так коряво и написано наверно в коде
Так пишите сами, в чем проблема?  
Согласие есть продукт при полном непротивлении сторон
 
Цитата
tod2020 написал: но это не код такой это язык такой
Что-то мне подсказывает, что программирование - это не Ваше
Согласие есть продукт при полном непротивлении сторон
 
Ответ на мой вопрос выглядит так, который я понял благодоря Sanja

Код
Range("Table1").Find("свекла").Row - Range("Table1").Row - 1

Я люблю лаконичность

А более расширенный ответ от Sanja, открыл мне глаза шире на некоторые вещи, ПОТОМУ СПАСИБО
А расшифрвака строк от AndreTM, тоже прояснения дало. и Я РАД и ВОСХИЩЕН тем что он чувствует что мне нужно понять
Изменено: tod2020 - 15.07.2017 16:29:04
 
Цитата
Sanja написал:
Цитата tod2020  написал: Ровно так коряво и написано наверно в кодеТак пишите сами, в чем проблема?  
Ещё раз говорю претензия не к Коду а к Языку програмирования
 
Цитата
tod2020 написал: Ответ на мой вопрос выглядит так
В этом ответе мало что осталось от вопроса. В частности про 'умную таблицу' в ответе нет ни буквы.
Согласие есть продукт при полном непротивлении сторон
 
На самом деле, правильный ответ выглядит примерно так:
Код
    Set found = [table1[имя]].Find("Помидоры")
    If Not found Is Nothing Then MsgBox "Строка: " & (found.Row - [table1[имя]].Row + 1)
Изменено: AndreTM - 15.07.2017 17:18:41
 
Цитата
tod2020 написал: вежливость и прочие церемонии у меня не проговариваются
И опять не проговорилось
Это не настроение - это Ваша принципиальная позиция
Это так, для будущих поколений помогающих.
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
И  опять не проговорилось  
ПРОГОВОРИЛОСЬ ВЕДЬ:

Цитата
tod2020 написал:
А более расширенный ответ от  Sanja , открыл мне глаза шире на некоторые вещи, ПОТОМУ СПАСИБО
А расшифрвака строк от  AndreTM , тоже прояснения дало. и Я РАД и ВОСХИЩЕН тем что он чувствует что мне нужно понять
 
Вам Sanja о другой Вашей теме пишет. Ответ дан в 13:47, а от Вас ни слова в ответ...
 
tod2020, "тыкать" незнакомым людям на самом деле невежливо. У нас на форуме в таком случае обращаются. на Вы.
А ещё Вам ссылкой намекают, что Вы не отписываетесь в своих темах: подошёл или нет предлагаемый вариант. И спасибо не помешает - элементарная вежливость.
 
Придется заставлять себя
быть ещё более благодарным
както
Страницы: 1 2 След.
Читают тему
Наверх