получение скриншота за неделю 1 зарплата Я написал VBA-код в Excel для извлечения еженедельных данных водителя в единой главной платежной ведомости. Я использую Driver ID имеет первичный ключ для получения данных драйвера. Всего имеется 4-недельные отчеты MCMSSummaryReport (Week1), MCMSSummaryReport (Week2), MCMSSummaryReport (Week3), MCMSSummaryReport (Week4).
Я пытаюсь получить данные в листе «Masterly Monthly Payment Master2» путем сравнения идентификатора драйвера. «Ежемесячный платеж Master2» имеет список идентификатора водителя. Я сравниваю идентификатор драйвера Monthly Payment Master2 с другими 4 еженедельными отчетами.
, однако, когда код не находит того же идентификатора в еженедельном отчете, который присутствует в таблице Monthly Payment Master2, он должен возвращать "" (пусто) в столбце 'Week1». Он возвращает пустое значение, где идентификаторы не совпадают, но после этого цикла пропускают строку и извлекают данные из строки 1 + 1.
не удалось устранить эту проблему в коде.
Ниже приведена ссылка на лист включения макросов Excel: https://drive.google.com/open?id=1aaidUeED7rkXaw-rMHoMK-4TNzkUJlN4
под кодом:
Private Sub CommandButton1_Click()
Dim salary As String, fromdate As String
Dim lastcoluns As Long, lastrow As Long, erow As Long, ecol As Long, lastrow1 As Long
lastcoluns = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
lastrow1 = Sheet7.Cells(Rows.Count, 1).End(xlUp).Row + 1
MsgBox (lastrow1)
Dim i As Integer
i = 2
Do While i < lastrow1
temp1 = Worksheets("Monthly Payment Master2").Cells(i, 1)
For j = 2 To lastrow + 1
temp2 = Worksheets("MCMSSummaryReport(week 1)").Cells(j, 1)
If temp1 = temp2 Then
salary = Sheet1.Cells(i, 18).Value
Worksheets("Monthly Payment Master2").Cells(i, 7) = salary
Else
End If
Next j
i = i + 1
Loop
MsgBox ("Week-1 data submitted successfully, Please submit Week-2 Data.")
Application.CutCopyMode = False
Sheet6.Columns().AutoFit
Range("A1").Select
End Sub