Получать значение из другой книги, используя vba, где значения соответствуют?

У меня есть следующая книга:

Мастерская книга

Column E Column G Column J Column V Expecting 12/12/2016 111 555 12/12/2015 222 444 12/12/2014 333 666 

У меня также есть книга под названием slave:

Рабская рабочая тетрадь

 Column C Column D Column E Column F Column G 111 555 12/12/2016 400 222 444 12/12/2015 500 333 666 12/12/2014 600 

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

В настоящий момент мой код работает, если я проверяю следующие критерии:

 Master Slave Column G MATCHES Column C Column J MATCHES Column D 

Однако, если я хочу проверить дату в столбце E моей основной рабочей книги, сопоставьте столбцу E в рабочую книгу моего подчиненного, мой код перестанет работать.

Вот мой код:

 Option Explicit Option Compare Text Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim oCell As Range, oCell2 As Range, oCell3 As Range, oCell4 As Range, targetCell As Range Dim ws2 As Worksheet Dim lastRow As Long If Target.Column = 22 And ActiveCell.Value = "Expecting" Then If Not GetWb("Order Checker", ws2) Then Exit Sub lastRow = Range("J" & Rows.Count).End(xlUp).Row With ws2 For Each targetCell In Range("J6:J" & lastRow) Set oCell = .Range("D1", .Cells(.Rows.Count, "D").End(xlUp)).Find(what:=targetCell.Value, LookIn:=xlValues, lookat:=xlWhole) Set oCell2 = .Range("C1", .Cells(.Rows.Count, "C").End(xlUp)).Find(what:=targetCell.Offset(0, -3).Value, LookIn:=xlValues, lookat:=xlWhole) Set oCell3 = .Range("F1", .Cells(.Rows.Count, "F").End(xlUp)).Find(what:=targetCell.Offset(0, -5).Value, LookIn:=xlValues, lookat:=xlWhole) MsgBox oCell3 If Not oCell Is Nothing And Not oCell2 Is Nothing And Not oCell3 Is Nothing Then Application.EnableEvents = False targetCell.Offset(0, 12).Value = oCell.Offset(0, 3) Application.EnableEvents = True End If Next End With End If End Sub Function GetWb(wbNameLike As String, ws As Worksheet) As Boolean Dim wb As Workbook For Each wb In Workbooks If wb.Name Like "*" & wbNameLike & "*" Then '<-- check if workbook name contains "Depot Memo" Set ws = wb.Worksheets(2) Exit For End If Next GetWb = Not ws Is Nothing End Function 

Проблема заключается в следующем:

 Set oCell3 = .Range("E1", .Cells(.Rows.Count, "E").End(xlUp)).Find(what:=targetCell.Offset(0, -5).Value, LookIn:=xlValues, lookat:=xlWhole) 

По какой-то причине oCell3 говорит: «Ничего».

Поэтому, когда я тестирую, если oCell3 не имеет ничего подобного:

 If Not oCell3 Is Nothing Then 

Это приводит к тому, что мой код не приводит к результату.

Может кто-нибудь, пожалуйста, покажите мне, что я делаю неправильно? благодаря

проблема может заключаться в том, что в датах ws2 самом деле значение String а ws2 дата – настоящая Date .

в этом случае вы можете использовать:

 Set oCell3 = .Range("F1", .Cells(.Rows.Count, "F").End(xlUp)).Find(what:=CStr(targetCell.Offset(0, -5)), LookIn:=xlValues, lookat:=xlWhole) 
Interesting Posts

Получение ошибки при открытии файла excel, который создается OpenXML SDK 2.5

vba excel Найдите строку, перейдите в местоположение смещения, скопируйте динамический диапазон на другой лист

Excel VBA Изменение текста внутри фигур, основанных на диапазоне ячеек

Как дублировать данные ячейки в excel между строками, если ячейки пусты, когда другая ячейка соответствует

Разделение текста Excel

Как определить порядок диаграмм при экспорте из Excel в PowerPoint?

Создание нового уникального идентификатора на основе двух столбцов – Excel

Excel Сохранить CSV без пробелов

GoalSeek только в VBA, без зависимости от ячейки WorkSheet

Не удалось сохранить файл Excel с помощью C #

Excel: передача текущей ячейки в качестве аргумента при вызове функции vba из рабочего листа

Как автоматически отправлять SQL-запрос в электронную таблицу Excel через регулярные промежутки времени

Чтение csv как файл в pandas

Как использовать Excel VBA для активации и копирования данных строк из нескольких листов в нескольких книгах в рабочий лист рабочей книги?

Как отключить специальные символы в листе Excel с помощью макроса VBA

Давайте будем гением компьютера.