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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2015, 13:16   #111
tomas_morgam
 
Регистрация: 06.05.2014
Сообщений: 6
По умолчанию

Здравствуйте! Есть 2 файла, export1-k.xls и export2-b.xls c 3-мя столбцами "ean", "old_price", "price". Помогите пожалуйста написать скрипт замены полей.
export1-k.xls
ean old_price price
1138 0.00 28800.000000
1150 0.00 5200.000000
1172 0.00 5999.000000

export2-b.xls
ean old_price price
1138 31250.00 28800.000000
1172 0.00 5999.000000

Если поле ean с первого файла соответствует ean второго файла, то "old_price" и "price" 2-го файла заменить на эти значения с первого, чтобы стало.

export2-b.xls
ean old_price price
1138 0.00 28800.000000
Вложения
Тип файла: xls export1-k.xls (18.5 Кб, 12 просмотров)
Тип файла: xls export2-b.xls (13.5 Кб, 11 просмотров)
tomas_morgam вне форума Ответить с цитированием
Старый 30.09.2015, 13:55   #112
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см. вложение
Вложения
Тип файла: rar export2-b.rar (15.4 Кб, 31 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.09.2015, 14:53   #113
tomas_morgam
 
Регистрация: 06.05.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
см. вложение
Простите, немного не правильно написал
"если ean в любом месте с первого документа == ean в любом месте со второго документа -> то сделать замену"
tomas_morgam вне форума Ответить с цитированием
Старый 30.09.2015, 15:03   #114
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в первом документе?

перенесите макрос в прайс 1-к
замените в макросе имя файла с export1-k на export2-b

удачи!))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 21.06.2016, 15:25   #115
52russ
Новичок
Джуниор
 
Регистрация: 21.06.2016
Сообщений: 1
По умолчанию

Доброго времени суток! Стоит задача просканировать все, что есть, книги в одной папке на предмет повтора в определённом столбце и свести все совпадения в отдельную книгу с указанием значения и в каких книгах оно повторяется. Скрипт на прочёсывание книг в папке есть, но требует корректировки. В него можно интегрировать ваш скрипт на поиск и маркировку, только маркировку заменить на копирование значений в новую книгу. Только для меня это туго понимаемо, прошу вашей помощи.

Sub Get_All_File_from_Folder()
Dim sFolder As String, sFiles As String
'диалог запроса выбора папки с файлами
With Application.FileDialog(msoFileDialo gFolderPicker)
If .Show = False Then Exit Sub
sFolder = .SelectedItems(1)
End With
sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
'отключаем обновление экрана, чтобы наши действия не мелькали
Application.ScreenUpdating = False
sFiles = Dir(sFolder & "*.xls*")
Do While sFiles <> ""
'открываем книгу
Workbooks.Open sFolder & sFiles
'действия с файлом
'Запишем на первый лист книги в ячейку А1
ActiveWorkbook.Sheets(1).Range("A1" ).Value = "Привет"
'Закрываем книгу с сохранением изменений
ActiveWorkbook.Close True 'если поставить False - книга будет закрыта без сохранения
sFiles = Dir
Loop
'возвращаем ранее отключенное обновление экрана
Application.ScreenUpdating = True
End Sub
52russ вне форума Ответить с цитированием
Старый 15.08.2017, 11:05   #116
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Пусть нужно сравнить столбцы "A" в файлах "Книга1.xls" и "Книга2.xls".
Следующий макрос подсветит в книге 2 ячейки, значения которых либо имеются в столбце "A" книги 1, либо повторяются в столбце "A" книги 2. Обе книги должны быть открыты
Код:
Sub Main()

    Dim i As Long, x As New Collection
    Application.ScreenUpdating = False
    Workbooks("Книга1.xls").Sheets(1).Activate
    On Error Resume Next
    For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        x.Add Cells(i, "A"), CStr(Cells(i, "A"))
    Next
    On Error GoTo 0
    
    With Workbooks("Книга2.xls").Sheets(1)
        Columns("A").Interior.ColorIndex = xlNone
        For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
            On Error Resume Next
            x.Add .Cells(i, "A"), CStr(.Cells(i, "A"))
            If Err <> 0 Then .Cells(i, "A").Interior.ColorIndex = 6
            On Error GoTo 0
        Next
    End With
    Set x = Nothing
    
End Sub
Здравствуйте! Подскажите пожалуйста, как можно преобразовать Ваш код, если у меня во второй книге не 1 лист, а 10 листов? Я пробовал так, но явно не то : With Workbooks("tmp001.xlsx").Sheets(Arr ay("SQL Results", "SQL Results(2)", "SQL Results(3)", "SQL Results(4)", "SQL Results(5)", "SQL Results(6)", "SQL Results(7)", "SQL Results(8)", "SQL Results(9)", "SQL Results(10)"))
user2017 вне форума Ответить с цитированием
Старый 15.08.2017, 13:11   #117
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
for shCounter = 1 to Workbooks("Книга2.xls").Sheets.Count
With Workbooks("Книга2.xls").Sheets(shCounter)
....'TODO SMTH
    End With
Next
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 15.08.2017, 13:46   #118
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
for shCounter = 1 to Workbooks("Книга2.xls").Sheets.Count
With Workbooks("Книга2.xls").Sheets(shCounter)
....'TODO SMTH
    End With
Next
Спасибо!
user2017 вне форума Ответить с цитированием
Старый 15.08.2017, 14:31   #119
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
for shCounter = 1 to Workbooks("Книга2.xls").Sheets.Count
With Workbooks("Книга2.xls").Sheets(shCounter)
....'TODO SMTH
    End With
Next
Странно, но почему то если так записать код, то у меня перестают выделяться цветом ячейки из первой книги, как можно вылечить?

Sub Main()

Dim i As Long, x As Range, Fst As String
Application.ScreenUpdating = False
Workbooks("Цех 5 Status(15.08.17).xlsx").Sheets(1).A ctivate
For shCounter = 1 To Workbooks("tmp001.xlsx").Sheets.Cou nt
With Workbooks("tmp001.xlsx").Sheets(shC ounter)
'With Workbooks("tmp001.xlsx").Sheets(1)
Columns("A").Interior.ColorIndex = xlNone
.Columns("A").Interior.ColorIndex = xlNone
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Set x = .Columns("A").Find(what:=Cells(i, "A"), LookAt:=xlWhole)
If Not x Is Nothing Then
Cells(i, "A").Interior.ColorIndex = 6
Fst = x.Address
Do
.Cells(x.Row, "A").Interior.ColorIndex = 6
Set x = .Columns("A").FindNext(x)
Loop While Fst <> x.Address
End If
Next
End With
Next
End Sub

а если снять коммент с 'With Workbooks("tmp001.xlsx").Sheets(1) и закоментить последний Next, то будут выделяться совпадающие данные из первой книги
user2017 вне форума Ответить с цитированием
Старый 31.01.2019, 21:16   #120
Alexey2019
 
Регистрация: 28.01.2019
Сообщений: 4
По умолчанию

Здравствуйте уважаемые форумчане кто может помочь с написанием макроса сравнения 2 файлов Excel, то что приведено выше не совсем подходит.
Alexey2019 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прибавление данніх из двух столбцов gavrylyuk Microsoft Office Excel 3 01.08.2008 11:40
Нахождение совпадений в двух книгах Professor Hubert Microsoft Office Excel 5 25.07.2008 12:59
Отображение в форме и таблице двух столбцов подстановок smoky Microsoft Office Access 5 01.07.2008 09:27
Сравнение двух списков lelik759 Microsoft Office Excel 7 13.04.2008 22:19
Как извлечь из двух столбцов несовпадающие строки Shavminator Microsoft Office Excel 4 28.12.2007 12:23