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

Поиск по неактивному листу

24.12.2014, 23:16. Показов 3072. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма, на ней кнопка, к кнопке привязан код поиска по листу, если лист активен - все замечательно, но мне нужно, чтобы он искал на скрытом листе и не переходил на него. Пробовал через With, не получалось, может не правильно. Помогите, пожалуйста.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub cmdSearch_Click()
    Dim rr As Range, x
    'Worksheets(3).Activate
    x = UserForm2.TextBox1
    Set rr = Cells.find(What:=x)
    If Not rr Is Nothing Then
         UserForm2.TextBox2.Value = rr.Offset(, 2).Value
         UserForm2.TextBox3.Value = rr.Offset(, 3).Value
         UserForm2.TextBox4.Value = rr.Offset(, 1).Value
         UserForm2.TextBox5.Value = rr.Offset(, -1).Value
    Else
         MsgBox "Нет в базе.", , "Ошибка"
         UserForm2.TextBox2.Value = 250
    End If
    End Sub
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2014, 23:16
Ответы с готовыми решениями:

Поиск и выборка по листу excel
Всем привет! Нужна помощь для чайника и тугодума) Изначально наша компания вела клиентскую базу в гуглотаблицах. Некоторое время назад...

Поиск по листу и вывод результата в отдельный лист
Доброе утро! Прошу помощи в написании макроса по поиску значений с LIST (второй столбец) в листе BAZA (по 12 столбцу) и вывод найденных...

Поиск по листу по всем параметрам
допустим по параметру сравнить clients.FindAll(x => x.Surname == (string)obj); А если мне надо по всем полям класса сравнить?? как то...

9
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.12.2014, 23:29
Без примера файла...как-то так:
Visual Basic
1
2
    With Worksheets(3)
    Set rr = .Cells.Find(What:=x)
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 6
24.12.2014, 23:42  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Без примера файла...как-то так:
Visual Basic
1
2
    With Worksheets(3)
    Set rr = .Cells.Find(What:=x)
хм, вот что-то и не получается. Может не туда вставляю? Скопируйте, пожалуйста, и покажите полный код
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.12.2014, 23:59
Вроде объяснил:
Без примера файла..
Скопируйте, пожалуйста, и покажите полный код
Мой полный код ничего тебе не даст
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
25.12.2014, 00:53
может, справку по оператору With сначала прочитать? и изучить приведённые там примеры?
глядишь, и вставится тогда.
и закроется соответствующим End'ом.
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 6
25.12.2014, 01:15  [ТС]
Уважаемый, я не совсем глупый
А вообще, сейчас раскомментировал участок в примере и, что странно, работает как надо, хотя и не должно
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
25.12.2014, 01:18
Цитата Сообщение от gleb_789 Посмотреть сообщение
хотя и не должно
почему?
0
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 6
25.12.2014, 01:29  [ТС]
Цитата Сообщение от ikki Посмотреть сообщение
почему?
Цитата Сообщение от gleb_789 Посмотреть сообщение
'Worksheets(3).Activate
а это не значит, что лист активируется, и производится переход на него?
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
25.12.2014, 02:16
А разве я говорил об ).Activate?

Добавлено через 9 минут
Код в листе 3. Запускаю при активном листе 3
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub QWERT()
Dim RR As Range
x = 25
Debug.Print ActiveSheet.Name
    With Лист1
    Set RR = .Cells.Find(What:=x)
        If Not RR Is Nothing Then
            Debug.Print .Name
            Debug.Print RR.Address
            Debug.Print RR.Value
            Debug.Print RR.Offset(1).Value
          End If
    End With
End Sub
В дебаггере
Лист3
Лист1
$A$25
25
26
Лист3 пустой

Добавлено через 2 минуты
Обрати внимание на имена листов в дебаггере
И самое главное на точку в зоне действия With перед Cells и Name
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
25.12.2014, 02:44
Цитата Сообщение от gleb_789 Посмотреть сообщение
а это не значит, что лист активируется, и производится переход на него?
значит.
для нескрытых листов - однозначно.
а вот для скрытых - действительно, странноватое поведение...
по идее - скрытый лист активироваться не должен.
но простая проверка показывает - что, по крайней мере, в некоторых случаях он активируется.

имхо, лучше не допускать таких неоднозначностей.
т.е. отобразили лист - вызвали Find - скрыли лист.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2014, 02:44
Помогаю со студенческими работами здесь

Поиск по листу Excel книги
Здравствуйте! Пытаюсь организовать поиск по листу книги Excel. Т.е. в самом начале книга подключена поздним связыванием using Excel =...

Реализовать поиск по листу Excel
Всем привет! Подскажите пожалуйста как сделать поиск определенного текста в Visaul studio 2013 типа Find ? этот код установки значения...

Обращение к неактивному окну
Здравствуйте, ребят. Мне нужно обратиться к неактивному (скрытому) окну. Например поменять значение переменной. Каким образом это...

Как обратиться к неактивному элементу?
Тема наверняка уже много раз обсуждалась, но я не смог найти решения... В общем, ситуация следующая: на форме Edit1 и ComboBox1. При...

Отправка системной клавиши неактивному окну
Всем привет. Есть необходимость отправить нажатие системной клавиши F1-F12, Alt, Ctrl, Shift, PrintScr в неактивное окно блокнота. ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru