Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
74 / 7 / 2
Регистрация: 15.11.2018
Сообщений: 72
1

Поиск по скрытому документу Excel

15.11.2018, 16:31. Показов 1080. Ответов 1

Author24 — интернет-сервис помощи студентам
Всем привет. Вот возникла необходимость написать надстройку-форму работающую с другим документом. Но что-то у меня не складывается..
Итак есть док1 на который навесил SheetChange б где через Target.Column контрю интересующий меня столбец, в который данные загоняются через сканер штрих-кодов. Значения этого столбца мне и нужно найти в другом доке2, будем называть его справочник, для вывода нужных мне данных на форму. Справочник открываю скрытно, чтобы не мешался (app.Visible=false). Вроде всё просто, но как искать данные, ведь find ничего не ищет. Можно было бы, конечно, перебором ячеек, но тогда задержка не позволит комфортно работать.
В общем либо грабли, либо что-то упорно не вижу своей ошибки, ни разу не писал макросы под скрытный доступ
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub UserForm_Initialize() 'просто привязываю текущий документ и скрытно открываю док-базу
Set Wbook = ActiveWorkbook
Dim appSh As Application
Set appSh = New Application
appSh.Visible = False 'указано что приложение будет невидимо и не будет мешаться среди прочих открытых документов
Set BarcodeBook = appSh.Workbooks.Open("D:/Cloud/Штрих-коды.xlsx", , ReadOnly:=True)
Set BarcodeSheet = BarcodeBook.Worksheets(1)
...
End Sub
 
Private Sub app_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'actions
If Target.Cells.Count > 1 Then Exit Sub   ' если изменений больше одной ячейке-выход, т.к. данные меняются только в одной ячейки сканером
    If Target.Column = 19 Then   ' если изменение в столбце 19
    Application.EnableEvents = False   ' запретить обработку событий чтобы производимые далее изменения на листе не приводили к повторному циклическому вызову этой же процедуры
    Dim c As Range
    
    Set c = BarcodeSheet.Cells.Find(What:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole) 'более развернутую версию тоже пробовал. возвращает пустой результат
    TextBox1.Text = Cells(c.Row, 2).Text 'в тоже время здесь спокойно получаю любую ячейку, если подставить номер строки
    ... 'упрощено
    Application.EnableEvents = True   ' разрешить обработку событий
    End If
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2018, 16:31
Ответы с готовыми решениями:

Как осуществить поиск по всему Excel документу?
Всем добрые сутки!! Програмировал в VB последний раз 6 лет назад, тут нужно макрос написать!...

Неограниченный доступ к документу Excel
Всем добрый день! Коллеги, вопрос следующий.. Есть определенный документ Excel, созданный...

поиск по документу
Добрый день! Возникла проблема, которую не могу решить самостоятельно: Есть xml-документ...

Поиск по xml-документу
<ListOfBook> <Book> <Title>Book1</Title> <Status>false</Status> </Book> <Book> ...

1
74 / 7 / 2
Регистрация: 15.11.2018
Сообщений: 72
16.11.2018, 13:10  [ТС] 2
не ужели никто не работал со скрытным открытием?

Добавлено через 55 секунд
неужели никто не работал со скрытым доступом к файлу?
0
16.11.2018, 13:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2018, 13:10
Помогаю со студенческими работами здесь

Xml поиск по документу
Сломал мозг уже (и гугл походу тоже) Есть документ формата <ButtonForm col="5" row="5"> ...

Поиск по текстовому документу
procedure TForm1.Button1Click(Sender: TObject); function Find( S, P: string): Integer; var ...

Excel замена символов в формулах по всему документу
Здравствуйте! Подскажите пожалуйста функцию которая ищет определенные символы в документе Excel по...

Поиск текста по PDF документу
Суть: Есть куча одинаковых pdf анкет с информацией о студентах в таком виде: Имя: Вася Пупкин...


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

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