У меня есть два отчета о данных, в которых я сортирую данные в отчете данных 1 и перемещаю его на лист под названием «Список». Чтобы завершить отчет, я затем,Результаты поиска и вычисления expiratrion
- Получить дату из отчета о данных по две для каждой строки, которая у меня есть, в отсортированном списке. Для этого я попытался взять название действия в столбце «G» в листе «Список», а затем я ищу его в листе «Data2» в столбце «C», затем возвращаю номер строки и хочу сохранить число в столбце «G». Это число - это дни до крайнего срока и может быть либо положительным, либо отрицательным числом.
- Возьмите сегодняшнюю дату +/- номер и поместите измененную дату и лист «Списки» в столбце «N», чтобы иметь возможность видеть, когда у каждой задачи установлен крайний срок.
Я не могу получить другие данные в отчетах, поэтому я должен решить это с помощью некоторых VBA. Код, который я пробовал, это.
Sub InsertDate()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim i As Integer
Dim RowNr As Long
Dim ActionTitle As String
Dim DaysToExp As Long
Dim ExpDate As Date
Dim Found As Range
Dim FoundRow As Long
Dim Sign As String
Dim Days As String
Dim RowNr2 As Long
ScreenUpdate = False
RowNr = ThisWorkbook.Worksheets("List").Range("A" & Rows.count).End(xlUp).row
RowNr2 = ThisWorkbook.Worksheets("Data2").Range("A" & Rows.count).End(xlUp).row
Set ws1 = ThisWorkbook.Worksheets("List")
Set ws2 = ThisWorkbook.Worksheets("Data2")
ws1.Range("N1").Value = "Expected start date"
For i = 2 To RowNr
ActionTitle = ws1.Range("G" & i).Value
Set Found = ws2.Range("C1:C" & RowNr2).Find(What:=ActionTitle, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows).Activate
FoundRow = ActiveCell.row
Days = ws2.Range("G" & FoundRow).Value
If Days = "" Then
DaysToExp = DaysToExp + 0
ElseIf Left(Days, 1) = "-" Then
Sign = "-"
DaysToExp = Replace(Days, "-", "")
Else
Sign = "+"
DaysToExp = DaysToExp + Days
End If
ExpDate = "=TODAY() & Sign & DaysToExp"
ThisWorkbook.Worksheets("List").Range("N" & i).Value = ExpDate
Next i
ScreenUpdate = True
End Sub
Пожалуйста, отредактируйте этот предмет во что-то более описательное, вы можете получить дополнительную помощь в этом направлении. –
Что значит «провал»? Запускает ошибку, не возвращает значение, возвращает неправильные значения? – user3819867
Я не уверен, что вы пытаетесь сделать. может дать некоторый вклад с ожидаемым и фактическим выходом .... Читая ваши вопросы, это звучит так же, как вы можете использовать [VLOOKUP] (https://support.office.com/en-in/article/VLOOKUP-function-adceda66 -30de-4f26-923b-7257939faa65), чтобы выполнить часть работы. – Loopo