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

Макрос для сравнения данных в двух столбцах, вместо vlookup

01.01.2011, 17:58. Показов 3069. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как написать макрос, который бы можно было использовать для сравнения данных в двух столбцах, вместо vlook up.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.01.2011, 17:58
Ответы с готовыми решениями:

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

Макрос для сравнения двух дат
1) Пишу макрос для EXCEL как сравнить две даты ? 2) Как узнать какая дата будет если от NOW() сместится на 5 дней ниже: а не самому...

Макрос для обновления данных в столбцах
Всем добрый день! Я только начинаю разбирать VBA,по этому следующая задачу, которую я опишу, для меня не посильная на данный момент(а...

10
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
01.01.2011, 18:22
Olya1985,
более подробно опишите, что вам нужно.
0
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
01.01.2011, 18:26  [ТС]
у меня имеется 2 файла, прайс и прайс лист. в прайсе в столбце 1 вводятся номера артикулов, а в столбце 2 цены на них. в прайс листе в столбце 2 номера артикулов (включая те, которые есть в прайсе), в столбце 17 цены на них. вот нужно чтобы наподобие функции vlook up цены из прайс-листа перетянулись в прайс на соотвествующие номера артикулов в столбец 3, а потом в столбце 4 писалось true или false.
0
1705 / 574 / 74
Регистрация: 10.04.2009
Сообщений: 9,287
01.01.2011, 18:29
Цитата Сообщение от Olya1985 Посмотреть сообщение
vlook up
ЭТО ЧТО ТАКОЕ?????

Добавлено через 1 минуту
ПОНЯЛ
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
01.01.2011, 19:00
Olya1985,
а чем функция не устраивает?
0
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
01.01.2011, 19:02  [ТС]
ну в использовании макроса есть много преимуществ, ускоряется процесс проверки цен, не надо каждый раз протягивать эти формулы, а нужно только скопировать данные и все.
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
01.01.2011, 19:13
Olya1985,
т.е. нужно все данные из файла "Прайс лист" из столбцов 2 и 17 перенести в "Прайс" в столбцы 1 и 3?
0
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
01.01.2011, 19:22  [ТС]
т.е. нужно все данные из файла "Прайс лист" из столбцов 2 и 17 перенести в "Прайс" в столбцы 1 и 3?

нужно чтобы перенеслись данные из прайс листа из столбца 17 в столбец 3 прайса, на соответствующие номера артикулов (т.е. в столбце 1 прайса только часть артикулов из столбца 2 прайс-листа.
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
02.01.2011, 09:39
Olya1985,
2 книги должны быть открыты. Про True и False нужно уточнить, в каких случаях, что должно ставиться.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub m_1()
Dim vEndПрайс As String
Dim vEndПрайсЛист As String
Dim oНайденнаяЯчейка As Excel.Range
Dim oCell As Excel.Range
vEndПрайс = Workbooks("Прайс.xls").Worksheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row
vEndПрайсЛист = Workbooks("Прайс лист.xls").Worksheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row
For Each oCell In Workbooks("Прайс.xls").Worksheets(1).Range("A1:" & "A" & vEndПрайс)
    With Workbooks("Прайс лист.xls").Worksheets(1).Range("B1:" & "B" & vEndПрайсЛист)
        Set oНайденнаяЯчейка = .Find(What:=oCell.Value, LookIn:=xlValues, LookAt:=xlWhole, _
                                SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
                                MatchCase:=False, SearchFormat:=False)
        If Not oНайденнаяЯчейка Is Nothing Then
            Workbooks("Прайс.xls").Worksheets(1).Cells(oCell.Row, 3).Value = _
                Workbooks("Прайс лист.xls").Worksheets(1).Cells(oНайденнаяЯчейка.Row, 17).Value
        End If
    End With
Next oCell
Set oНайденнаяЯчейка = Nothing
Set oCell = Nothing
End Sub
0
32 / 2 / 0
Регистрация: 31.12.2010
Сообщений: 91
02.01.2011, 11:38  [ТС]
Busine2009, я немного переделала скрипт, так чтобы была одна рабочая книга и в ней 2 рабочих листа Price и Price-list. Но что-то не работает. посмотрите, пожалуйста.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub m_1()
Dim vEndPrice As String
Dim vEndPricelist As String
Dim oFoundedCell As Excel.Range
Dim oCell As Excel.Range
vEndPrice = Worksheets("Price").Cells.SpecialCells(xlCellTypeLastCell).Row
vEndPricelist = Worksheets("Price-list").Cells.SpecialCells(xlCellTypeLastCell).Row
For Each oCell In Worksheets("Price").Range("A1:" & "A" & vEndPrice)
    With Worksheets("Price-list").Range("B1:" & "B" & vEndPricelist)
        Set oFoundedCell = .Find(What:=oCell.Value, LookIn:=xlValues, LookAt:=xlWhole, _
                                SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
                                MatchCase:=False, SearchFormat:=False)
        If Not oFoundedCell Is Nothing Then
            Worksheets("Price").Cells(oCell.Row, 3).Value = _
                Worksheets("Price-list").Cells(oFoundedCell.Row, 17).Value
        End If
    End With
Next oCell
Set oFoundedCell = Nothing
Set oCell = Nothing
End Sub
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
02.01.2011, 11:53
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub m_1()
Dim vEndPrice As String
Dim vEndPricelist As String
Dim oFoundedCell As Excel.Range
Dim oCell As Excel.Range
vEndPrice = Worksheets("Price").Cells.SpecialCells(xlCellTypeLastCell).Row
vEndPricelist = Worksheets("Price-list").Cells.SpecialCells(xlCellTypeLastCell).Row
For Each oCell In Worksheets("Price").Range("A1:" & "A" & vEndPrice)
    With Worksheets("Price-list").Range("B1:" & "B" & vEndPricelist)
        Set oFoundedCell = .Find(What:=oCell.Value, LookIn:=xlValues, LookAt:=xlWhole, _
                            SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
                            MatchCase:=False, SearchFormat:=False)
        If Not oFoundedCell Is Nothing Then
            Worksheets("Price").Cells(oCell.Row, 3).Value = _
                Worksheets("Price-list").Cells(oFoundedCell.Row, 17).Value
        End If
    End With
Next oCell
Set oFoundedCell = Nothing
Set oCell = Nothing
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.01.2011, 11:53
Помогаю со студенческими работами здесь

Макрос для сравнения данных ячеек одной книги с другой
Здравствуйте! Пожалуйста, не ругайтесь, я новенький. У меня стоит задача автоматизации отчета по дням. Во вложении я привел данные, с...

Макрос сравнения двух таблиц
Здравствуйте,помогите сравнить два файла есть файл с эталонной таблицей и файл для сравнения, надо сравнить столбец адреса с эталоном и...

Макрос сравнения двух таблиц
Здравствуйте,помогите сравнить два файла есть файл с эталонной таблицей и файл для сравнения, надо сравнить столбец адреса с эталоном и...

Макрос сравнения содержимого двух ячеек
Простите за столь простой вопрос Есть: в листе exel при изменении даты в ячейке с2 и нажатии ентр, меняется дата в к1 и происходит...

Макрос сравнения двух столбцов с условиями
есть 5 столбцов в виде 1 300.00 900 900 180.00 3 800.00 902 901 0.00 4 402.00 903 902 268.00 5 231.00 905 903 0.00 ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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