Sub Test()
Const FieldName = "Имя" ' Имя поля таблицы для поиска
Const What = "свекла" ' Что искать
Dim x As Range
With Лист1.ListObjects(1).ListColumns(FieldName).DataBodyRange
Set x = .Find(What, LookIn:=xlValues, LookAt:=xlWhole)
If Not x Is Nothing Then MsgBox x.Row - .Row + 1
End With
End Sub
Всё что выше это всё многострочное сложное. Нужно чтобы было просто в одну лакончиную строчку, без вычетаний лишних Для этого нужно понимать классификацию, структуру объектов в строчке-конструкцию которую я изначально предложил
У Вас таблица из 4 строчек и вопрос о номере строки, в которой находится свекла. Вам предложили как минимум 4 варианта. Какую еще классификацию нам надо понять? Куда пойти записаться чтоб изучить структуру объекта из 4 строчек?
Если у вас столько строчек, и не одна свекла обыкновенная там храниться, а еще свекла сахарная, свекла пареная, свекла испорченная и т.д. Тогда Find завершит поиск на первой найденной. Так какую строчку найти надо?
tod2020 написал: Нужно чтобы было просто в одну лакончиную строчку, без вычетаний лишних
С точки зрения правил программирования Ваше "нужно" некорректное. Код пишется один раз так, чтобы он был понятен, работал в штатных и аварийных ситуациях. И совершено не важно сколько в нем строчек. Это же не формула ячеек. Хотя рекомендуется не более одной экранной странички для функции и процедуры для удобства визуального охвата и неперегрузки интеллекта и памяти программиста. Если очень уж хочется в одну строчку, но с вычитанием, то можно, например. так:
Вам ответ дал Илья Демид, в сообщении #6. Значение Row будет для являться для листа, если Вы хотите вычислить номер строки для таблицы по средствам VBA, то в лаконичную одну строку это не уберется
Но по задаче поставленной в теме говориться о такой конструкции: Worksheets(1).Range("Table1").[ХХХХХХХХХХХХ].Find("свекла").Row
Как правильно выглядит код для такой конструкции? то есть Row определяется не для Worksheets(1) а для Range("Table1") PS Был бы listObject вместо XXX стояло бы DataBodyRange
Я не требую. У Вас такая реакция(набор мыслеформ и картинка и интонация) на слово "задача" наверно с работы, но не всё так однобоко
Каждый кто отвечает на этих формах в этих темах решает задачи поставленные в теме. Я не требую большего чем тут принято. Как вещи называются так и называю И каждый кто отвечает для когото другого - какуюто свою задачу выполняет для себя таким образом. и я не спрашиваю зачем ктото мне отвечает.
И наверно потому заставляю себя говорить спасибо потому что человек отвечающий решает свои задачи для себя, он уже получает себе чтото там
В примере была таблица, поэтому в ответе и ListObject. А что у Вас подразумевается под [XXX] ? Так как пояснений никаких не было, я посчитал, что Вы хотели указать конкретное поле в таблице для поиска, значение же может оказаться и в других полях. Уточните про XXX.
Вы ошибаетесь, но да ладно. Если я правильно понял то необходим вариант который бы сам вычислял в какой строке находится шапка и отнимал ее сам, Как насчет такого, но не 1 строкой:
Код
Dim a As Integer
a = Worksheets(1).Range("table1").Find("свекла").End(xlUp).Row
b = Worksheets(1).Range("table1").Find("свекла").Row
MsgBox b - a
тод2020, я уже упоминал вроде, что вы - не читатель?
В том сообщении вам был дан тот ответ, что вы требуете здесь (в одну строчку тот код переписывается просто на раз-два). Неспособность заменить имя переменной её значением - на вашей совести...
Чтож за такое то происходит? перевожу что твориться -мне надо красное яблоко -ну на целый ящик груш зеленых! тоже круглые же -да не надо мне!, мне надо и ОДНО и КРАСНОЕ и ЯБЛОКО! -ну на возьми ну хочешь три желтых груши? -да не надо мне ни желтую ни зеленую грушу ни целы ящик их, мне надо одно красное яблоко -да не бывает красных яблок я не видел и вот двое тоже не видели никогда в жизни твое красное яблоко
дают груши лишь потомуто не знают что существует красное яблоко или потомучто просто напросто нету его в наличии
Пусть определят участники тем - дубль или нет. Я вижу, что разница в названии - "диапазон" и "умная таблица". Вы считаете, что диапазон умной таблицы - не диапазон?
AndreTM написал: В том сообщении вам был дан тот ответ, что вы требуете здесь
Меня ваще не слышат - не понимают что я уже 3 раза продублировал самого начала запроса темы Я понял люди знают как мне лучше. точно Надоело объясняться. Буду ждать когда появится человек который понимает и меня и VBA
vikttur написал: Если Вас не слышат многие - проблема в Вас
Я думаю очень разный уровень понимания. Например это может проявляться в контактах с регионами. Ваще тяжко бывает. В москве легко улавливают меня с полу слова