Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2014, 13:34   #1
NebesnyiOgon
Новичок
Джуниор
 
Регистрация: 20.08.2014
Сообщений: 3
По умолчанию ошибка с полем для ввода

Доброго времени суток. Есть скрипт который ищет в книге значения и выводит строки, где эти значения присутствуют, в другую книгу. Пытался создать поле для ввода искомых значений, чтобы на каждое не создавать отдельную кнопку, но безуспешно.
Идея такова: в книге "arhiw" - в поле вводим значение "13", нажимаем кнопку "ввод" и в книге "13" на листе "13" получаем все строки в которых содержится число 13. Нужно чтобы искал любое введенное значение. Каждому значению соответствует своя книга. В примере это значение - 13.
На данный момент это работает через кнопку. Вся надежда на Вас.
Вложения
Тип файла: zip архив.zip (34.2 Кб, 13 просмотров)
NebesnyiOgon вне форума Ответить с цитированием
Старый 20.08.2014, 13:56   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не глядя в файл - ищите число 13, а не строку "13", которую получаете после инпутбокса.
Но лучше все свести к строке.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 20.08.2014, 14:20   #3
NebesnyiOgon
Новичок
Джуниор
 
Регистрация: 20.08.2014
Сообщений: 3
По умолчанию

лучше было бы конечно посмотреть.
NebesnyiOgon вне форума Ответить с цитированием
Старый 20.08.2014, 14:54   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

почему поле ввода и кнопка - в одном файле, а макрос - в другом?

перенесите макрос в другой файл, и попробуйте так:

Код:
Sub poisk()
    txt$ = ActiveSheet.OLEObjects("textbox1").Object.Text
    Dim a(), b()
    Dim i&, ii&, j&, jj&
    With Sheets("arhiw")
        a = .Range("A2", .Cells(Rows.Count, 13).End(xlUp)).Value
    End With
    ii = 1
    ReDim Preserve b(1 To UBound(a), 1 To UBound(a, 2))
    For i = 1 To UBound(a)
        For j = 4 To 10
            If CStr(a(i, j)) = txt$ Then
                For jj = 1 To UBound(a, 2)
                    b(ii, jj) = a(i, jj)
                Next
                ii = ii + 1
                Exit For
            End If
        Next
    Next
    With ThisWorkbook.Sheets("13")
        .Cells(2, 1).Resize(UBound(b), UBound(b, 2)) = b
    End With
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 20.08.2014, 15:15   #5
NebesnyiOgon
Новичок
Джуниор
 
Регистрация: 20.08.2014
Сообщений: 3
По умолчанию

Приветствую EducatedFool. Попробовал сделать как Вы посоветовали - выдаёт ошибку (Subscript out of range). Excel 2010.
NebesnyiOgon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка с Lookup полем Malgor Общие вопросы Delphi 0 24.12.2012 17:14
Ошибка с полем для пароля qpuTuJlb Общие вопросы Delphi 7 14.09.2012 11:44
Изменить язык ввода (раскладку клавиатуры) при получении фокуса полем SMShrek Microsoft Office Access 4 04.07.2011 09:42
Как сделать запрет ввода букв в поле для ввода input zvezda_t PHP 1 27.12.2009 22:02
Ошибка с пустым полем и 30.00 в Double Bobrik Общие вопросы .NET 6 25.05.2009 12:06