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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2015, 14:12   #1
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию Макрос поиска и сохранения

Добрый день, помогите макрос написать для поиска строк.
На первой странице вставляется рекордсет из аксеса, получается некая таблица с данными, нужно на втором листе найти все совпадения с таблицей из первого листа сохранить а остальное удалить. Как такое сделать? И второй вопрос по другой теме, можно ли как то складывать адреса ячеек? Например если Range("A" & i)=5, то 5 вставится в ячейку столбца А на которую указывает i, а мне нужно чтобы к ячейке А5 например добавилось i=3 и тогда эта же "5" вставилась уже не в i ячейку столбца А, а получается в А5+i
Kot070 вне форума Ответить с цитированием
Старый 09.10.2015, 14:40   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Однако...
прочитайте еще раз это сами и попытайтесь понять что здесь написано:
Цитата:
если Range("A" & i)=5, то 5 вставится в ячейку столбца А на которую указывает i, а мне нужно чтобы к ячейке А5 например добавилось i=3 и тогда эта же "5" вставилась уже не в i ячейку столбца А, а получается в А5+i
а тут
Цитата:
На первой странице вставляется рекордсет из аксеса, получается некая таблица с данными, нужно на втором листе найти все совпадения с таблицей из первого листа сохранить а остальное удалить
простой алгоритм проверяете построчно если данных второго листа нет на первом - удаляете строку. по окончании проверки сохраняете файл. всё - лишние удалены, нужные сохранены.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.10.2015, 15:25   #3
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

оффтоп, но о наболевшим
Цитата:
Сообщение от Kot070 Посмотреть сообщение
На первой странице вставляется рекордсет из аксеса,
вызов вставки рекордсета из екселя или аксеса?
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 09.10.2015, 17:53   #4
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Однако...
прочитайте еще раз это сами и попытайтесь понять что здесь написано:

а тут простой алгоритм проверяете построчно если данных второго листа нет на первом - удаляете строку. по окончании проверки сохраняете файл. всё - лишние удалены, нужные сохранены.

Есть некоторое число i, к примеру i=3.
Код:
Dim i As Integer
Range("A" & i)=5
в ячейку по адресу А3 вставится 5, а мне нужно чтобы к определенному адресу ячейки (например А3) прибавилось значение i (к примеру i=3), и уже "5" записалась в А6.
Как построчно проверить данные?
Kot070 вне форума Ответить с цитированием
Старый 09.10.2015, 17:54   #5
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

Цитата:
Сообщение от AleksandrH Посмотреть сообщение
оффтоп, но о наболевшим

вызов вставки рекордсета из екселя или аксеса?
Из Аксеса, вставляю CopyFromRecordset)
Kot070 вне форума Ответить с цитированием
Старый 09.10.2015, 20:26   #6
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

Цитата:
Сообщение от Kot070 Посмотреть сообщение
Как построчно проверить данные?
Код:
For i = 1 to LastRowSheet1
for j = 1 to LastRowSheet2
 If Cells(i,1) = Cells(j,1) then ......
next i,j
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 09.10.2015, 21:38   #7
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

После then получается делать find("ячейка с нужным содержимым") потом else удалить строку?
Kot070 вне форума Ответить с цитированием
Старый 09.10.2015, 21:43   #8
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

разные варианты. Мы ж не видели данные которые сравниваются. Я бы сделал логическую переменную, и если сравнение в цикле прошло успешно, то TRUE. После прохода ForJ посмотрел если переменная FALSE, то удалил строку i с Sheet1
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 09.10.2015, 22:27   #9
Kot070
Форумчанин
 
Регистрация: 22.12.2012
Сообщений: 139
По умолчанию

Цитата:
Сообщение от AleksandrH Посмотреть сообщение
разные варианты. Мы ж не видели данные которые сравниваются. Я бы сделал логическую переменную, и если сравнение в цикле прошло успешно, то TRUE. После прохода ForJ посмотрел если переменная FALSE, то удалил строку i с Sheet1
В каждой строке свой шифр товара
Kot070 вне форума Ответить с цитированием
Старый 09.10.2015, 22:56   #10
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

Код:
Sub t()
    Set Sh1 = Sheets(1)
    Set sh2 = Sheets(2)
    lrow1 = Sh1.Cells(Sh1.Rows.Count, "A").End(xlUp).Row
    lrow2 = sh2.Cells(sh2.Rows.Count, "A").End(xlUp).Row
    j = 1
        Do While j <= lrow2
            sh2.Cells(j, 2).FormulaR1C1 = "=COUNTIF(Лист1!C1,Лист2!RC[-1])"
            If sh2.Cells(j, 2) = 0 Then
                sh2.Rows(j).Delete
                row2 = sh2.Cells(sh2.Rows.Count, "A").End(xlUp).Row
            Else:
                sh2.Cells(j, 2).Clear
                j = j + 1
            End If
        Loop
End Sub
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МАКРОС ДЛЯ СОХРАНЕНИЯ ЗАКАЗОВ ЕКСЕЛЬ2007 Ирина Розанова Microsoft Office Excel 5 22.08.2014 10:06
макрос для поиска позиций и вывода данных на лист поиска mr-111 Microsoft Office Excel 12 13.03.2012 15:03
Макрос для сохранения писем из Outlook. GoreProgrammist Microsoft Office Excel 1 16.11.2009 19:40
Макрос для сохранения листов в отдельных файлах Neo007 Microsoft Office Excel 2 22.10.2008 18:16
Макрос сохранения после печати lala_white Microsoft Office Word 2 10.08.2008 12:50