Перекрестная проверка данных VBA между двумя рабочими книгами - PullRequest
0 голосов
/ 26 декабря 2018

Я попробовал несколько кодов, но я застрял в формуле, идея состоит в том, чтобы иметь один рабочий лист с данными, другой рабочий лист будет содержать часть отчета, а затем криптовать PDF;Я добавляю часть, которая найдет одно общее имя - большой файл имен и чисел, а затем вычислит даты с более чем 90 днями. Это результат, который попадает в лист PDF.В рабочей книге данных есть один столбец с результатами, которые, как я полагаю, облегчат код, если число станет меньше 3, результатом будет «Не актуально» для облегчения визуализации.У некоторого кода все еще есть «для собственных заметок, надеюсь, поможет кому-нибудь.

Sub Checkcurrency()
Application.ScreenUpdating = False

'Possibly lots of DIM and SET overused; needs a revision

Dim FC As Worksheet
Dim DT As Worksheet
Dim FP As Workbook
Dim ML As Worksheet
Dim FD As Workbook
Dim dat As Worksheet

Dim l As Variant
Dim c As Variant 'crew 3 letter code
Dim d As Variant
Dim li As Long

Dim r As Long
Dim cn As Variant 'crew name
Dim tri As Variant
Dim ro As Long
Dim lig As Long
Dim mln As Variant
Dim nam As Variant
Dim col As Long

Dim CR As Worksheet
Dim CD As Worksheet

Set CR = Sheets("Crew")
Set CD = Sheets("Crew details sheet")

    Set FD = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "flight data.xlsm")
    Set nam = Sheets("data").Range("BX3:BX5000").Find(CR.Range("A9"))

    col = nam.Row
    Set dat = Sheets("data")

'    Selection.Formula = "=IF(OR((""A"" & col)>(TODAY()-90);(""CA"" & col)<3);""Not Current"";(""A"" & col)+90)"

    If dat.Range("BX" & col).Value = CR.Range("A9") Then

    CD.Range("O36") = dat.Range("CA" & col).Value  'Night Currency
    CD.Range("O37") = dat.Range("BZ" & col).Value '90day currency

End If
Application.ScreenUpdating = True

FD.Close savechanges:=True


End Sub

Это часть, которая меня заводит

Set FD = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & "flight data.xlsm")
Set nam = Sheets("data").Range("BX3:BX5000").Find(CR.Range("A9"))

col = nam.Row
Set dat = Sheets("data")
'    Selection.Formula = "=IF(OR((""A"" & col)>(TODAY()-90);(""CA"" & col)<3);""Not Current"";(""A"" & col)+90)"
If dat.Range("BX" & col).Value = CR.Range("A9") Then

CD.Range("O36") = dat.Range("CA" & col).Value  'Night Currency
CD.Range("O37") = dat.Range("BZ" & col).Value '90day currency

Спасибо за любую помощь.

...