Я попробовал несколько кодов, но я застрял в формуле, идея состоит в том, чтобы иметь один рабочий лист с данными, другой рабочий лист будет содержать часть отчета, а затем криптовать 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
Спасибо за любую помощь.