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

Не работает поиск разных значений на разных листах

06.04.2015, 12:37. Показов 2214. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, дан код, он из учебника, по поиску разных значений на разных листах, но он не хочет работать, а программа очень нужна
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
24
Sub Поиск_разных_значений()
    Dim lLastRowA As Long
    Dim lLastRowB As Long
    Dim lLastRowC As Long
    Dim rFind As Excel.Range
    lLastRowA = Лист7.Cells(Rows.Count, "A").End(xlUp).Row
    lLastRowB = Лист8.Cells(Rows.Count, "A").End(xlUp).Row
    lLastRowC = 2
   Лист9.Range("A2:A100").ClearContents
    Application.ScreenUpdating = False
    
    For i = 2 To lLastRowA Step 1
        Set rFind = Sheets(a).Columns("A").Find(What:=Лист7.Cells(i, "A").Text, LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
        If rFind Is Nothing Then
            Лист8.Cells(lLastRowC, "A").Value = Лист7.Cells(i, "A").Value
            lLastRowC = lLastRowC + 1
        End If
    Next i
    
    Application.ScreenUpdating = True
    MsgBox "ГОТОВО!", vbInformation
End Sub
0
Лучшие ответы (1)
06.04.2015, 12:37
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2015, 12:37
Ответы с готовыми решениями:

Поиск одинаковых значений на разных листах
Доброго времени суток, я столкнулся с проблемой написании кода, который будет сравнивать два столбца с данными на разных листах(номер...

Поиск одинаковых значений на разных листах
Имеется книга со множеством листов. В листе есть столбец с id, этот самый id совпадает в некоторых листах. Как сделать так, что бы рядом в...

Поиск и суммирование значений по условию в разных листах
Доброго времени суток! У меня в книге Экзеля есть около 80 листов, нужно переодически суммировать данные столбца А, по условию указанном...

9
 Аватар для kalbasiatka
416 / 263 / 83
Регистрация: 27.10.2012
Сообщений: 861
06.04.2015, 12:50 2
Вы бы файлик приложили к коду.
0
1 / 1 / 0
Регистрация: 14.10.2014
Сообщений: 93
06.04.2015, 13:13  [ТС] 3
вот пример, т.е. нужно сравнить 2 столбца на разные значения, и вывести результат
Вложения
Тип файла: xlsx пример.xlsx (10.6 Кб, 19 просмотров)
0
4082 / 1462 / 401
Регистрация: 07.08.2013
Сообщений: 3,656
06.04.2015, 13:27 4
Цитата Сообщение от medved_program Посмотреть сообщение
Sheets(a).
с чего она работать будет
а- чему равно?
0
1 / 1 / 0
Регистрация: 14.10.2014
Сообщений: 93
06.04.2015, 13:42  [ТС] 5
в учебнике так...

Добавлено через 9 минут
Цитата Сообщение от medved_program Посмотреть сообщение
Set rFind = Sheets(a).Columns("A").Find(What:=Лист7.Cells(i, "A").Text, LookIn:=xlValues, _
Возможно там имеется ввиду Лист8
0
4082 / 1462 / 401
Регистрация: 07.08.2013
Сообщений: 3,656
06.04.2015, 13:51 6
Лучший ответ Сообщение было отмечено medved_program как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub macro1()
Set objConnection = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
objConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";" & _
"Extended Properties=""Excel 12.0;HDR=Yes"";"
strSQL = "SELECT a2.[1 столб]"
strSQL = strSQL & " FROM [Лист1$] AS a2 LEFT JOIN [Лист2$] AS a1 ON a2.[1 столб] = a1.[2 столб]"
strSQL = strSQL & " WHERE (((a1.[2 столб]) Is Null))"
strSQL = strSQL & " GROUP BY a2.[1 столб]"
strSQL = strSQL & " ORDER BY a2.[1 столб];"
rs.Open strSQL, objConnection, 3, 3
Sheets("Лист3").Cells(2, 1).CopyFromRecordset rs
Set rs = Nothing
Set objConnection = Nothing
End Sub
1
1 / 1 / 0
Регистрация: 14.10.2014
Сообщений: 93
06.04.2015, 13:54  [ТС] 7
Огромное спасибо, с кодом из учебника что? вообще не правильный?
0
4082 / 1462 / 401
Регистрация: 07.08.2013
Сообщений: 3,656
06.04.2015, 13:57 8
я прочитал всего один учебник
MS Access 2003 Харитоновой
что с этим кодом я не знаю
и даже не хочу копаться - по одной простой причине - лень
( у каждого проггера есть маленькие наработки которые РАБОТАЮТ
а что там пишут в учебниках - одним авторам только и известно)
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
06.04.2015, 22:40 9
Цитата Сообщение от medved_program Посмотреть сообщение
дан код, он из учебника
Что, этот код прям целиком из учебника, или Вы его из разных глав скопипастили?
В этом учебнике в начале написано "зайти в Tools - Options - Editor и включить "Require Variable Declaration"?
Если написано - сделайте так, и вопросов "почему не работает" станет гораздо меньше.
Если не написано - все равно сделайте, а учебник выкиньте нах.

Добавлено через 13 минут
Вот исправленный код
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
24
25
26
27
Option Explicit
 
Sub Поиск_разных_значений()
    Dim lLastRowA As Long
'    Dim lLastRowB As Long
    Dim lLastRowC As Long
    Dim rFind As Excel.Range
    Dim i As Long
    lLastRowA = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
'    lLastRowB = Лист8.Cells(Rows.Count, "A").End(xlUp).Row
    lLastRowC = 2
    Sheets(3).Range("A2:A100").ClearContents
    Application.ScreenUpdating = False
    
    For i = 2 To lLastRowA Step 1
        Set rFind = Sheets(2).Columns("A").Find(What:=Sheets(1).Cells(i, "A").Text, LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
        If rFind Is Nothing Then
            Sheets(3).Cells(lLastRowC, "A").Value = Sheets(1).Cells(i, "A").Value
            lLastRowC = lLastRowC + 1
        End If
    Next i
    
    Application.ScreenUpdating = True
    MsgBox "ГОТОВО!", vbInformation
End Sub
0
 Аватар для pashulka
4135 / 2239 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
06.04.2015, 23:10 10
Если кому-то интересно откуда, что называется, растут ноги, то здесь здесь можно найти аналогичную тему, где уже есть и решение и автор темы.
0
06.04.2015, 23:10
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2015, 23:10
Помогаю со студенческими работами здесь

Подстановка значений по похожим данным на разных листах
На фото лист1 с нужными данными. На лист3 в колонках 8 и 9 ничего нет. И попадаются данные такие же как в лист1, это колонки 4 и 6 только...

Проверка на совпадение значений ячеек на разных листах
Доброго дня, есть файлик с двумя листами. нужно сравнить есть ли значения из столбца А(на листе 2), в столбце Е (на Листе 1). я сразу...

Сравнение значений ячеек на разных листах Excel и их перенос
Доброго Вам времени суток, уважаемие знатоки!!! Нужна Ваша помощь и подсказки. На листе 1 есть табличка, на листе 2 есть список, нужно...

Сравнение двух пар столбцов в разных листах и вывод значений
Добрый день! Очень нужна помощь в написании макроса. На листе 1 есть данные в столбцах*B*и*G, на листе 2 в столбцах*A*и*B. Если...

Сравнение диапазонов значений на разных листах
Здравствуйте, помогите сравнить 4 столбца, желательно формулой если можно. Есть два столбца "имя" и "фамилия" на...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Использование кэша Laravel - полный гайд
bytestream 18.02.2025
Кэширование - один из наиболее эффективных способов повышения производительности веб-приложений. В современном мире, где скорость загрузки страниц напрямую влияет на удержание пользователей и. . .
Создаем REST API в Laravel с аутентификацией через Passport
bytestream 18.02.2025
Разработка современных веб-приложений все чаще требует создания надежного и хорошо структурированного API. REST API стал стандартом де-факто для построения взаимодействия между клиентской и серверной. . .
Пайплайны в Laravel - полный гайд
bytestream 18.02.2025
Разработка современных веб-приложений часто требует обработки сложных процессов, состоящих из множества последовательных шагов. Например, при создании системы комментариев может потребоваться. . .
Как правильно использовать @required в Symfony
bytestream 18.02.2025
При разработке приложений на Symfony мы часто сталкиваемся с необходимостью внедрения зависимостей. Фреймворк предоставляет несколько способов управления этим процессом, и одним из таких инструментов. . .
Система безопасности в Laravel: возможности и примеры
Wired 18.02.2025
Каждый день появляются новые виды атак и уязвимостей, которые могут поставить под угрозу конфиденциальные данные пользователей и функционирование всей системы. В этом контексте выбор надежного. . .
Давайте сравним Django и Laravel
Wired 18.02.2025
Django и Laravel - два мощных инструмента, которые часто сравнивают между собой. Оба фреймворка предлагают разработчикам богатый набор возможностей для создания масштабируемых веб-приложений, но. . .
Laravel или React - что лучше?
Wired 18.02.2025
В разработке веб выбор правильного инструмента часто определяет успех всего проекта. Особенно интересным представляется сравнение Laravel и React - двух популярных технологий, которые часто. . .
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru