Функция индексного соответствия VBA - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь заставить индекс / совпадение работать в моей программе VBA без какого-либо успеха.Я пытаюсь сопоставить столбец A из «сравнения» со столбцом «A» из предыдущего извлечения и возврата столбца K. Все это во время циклического прохождения каждой строки.Я уже все проверил, и все отлично работает.Единственная проблема сейчас состоит в том, чтобы заставить этот индекс / совпадение работать.

Sub Delta_Analysis()

Dim wb As Excel.Workbook
Set wb = ThisWorkbook

Dim sheet_refresh_instructions As Excel.Worksheet
Set sheet_refresh_instructions = wb.Worksheets("Refresh instructions")

Dim sheet_previous_extract As Excel.Worksheet
Set sheet_previous_extract = wb.Worksheets("Previous extract")

Dim sheet_current_extract As Excel.Worksheet
Set sheet_current_extract = wb.Worksheets("Current extract")

Dim sheet_comparison As Excel.Worksheet
Set sheet_comparison = wb.Worksheets("Comparison")

Dim sheet_historical_changes As Excel.Worksheet
Set sheet_historical_changes = wb.Worksheets("Historical changes")

'Start manipulating objects

sheet_previous_extract.UsedRange.ClearContents
sheet_current_extract.UsedRange.Copy
sheet_previous_extract.Cells(1, 1).PasteSpecial Paste:=xlPasteValues
sheet_current_extract.UsedRange.ClearContents

sheet_refresh_instructions.Activate
Range("C6").Select

    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Workbooks.Open Filename:= _
        "http://jira3.ms.com/jira/sr/jira.issueviews:searchrequest-excel-current-fields/53756/SearchRequest-53756.xls?tempMax=1000"
    ActiveWindow.Visible = False
    Windows("SearchRequest-53756.xls").Visible = False

Dim wb1 As Excel.Workbook
Set wb1 = Excel.Workbooks("SearchRequest-53756.xls")
Dim sheet_Jira As Excel.Worksheet
Set sheet_Jira = wb1.Worksheets("general_report")

sheet_Jira.Activate
sheet_Jira.Range("1:3").EntireRow.Delete
sheet_Jira.UsedRange.Copy

sheet_current_extract.Cells(1, 1).PasteSpecial Paste:=xlPasteValues

wb1.Close

With sheet_comparison
    .Range("A2:K" & .Cells(.Rows.Count, "A").End(xlUp).Row).ClearContents
End With

sheet_current_extract.Range("a2", sheet_current_extract.Range("a2").End(xlDown)).Copy
    Sheets("Comparison").Select
    Range("A2").Select
    ActiveSheet.Paste

Dim i As Integer
i = 2

Do While sheet_previous_extract.Cells(i, 1) <> ""

Cells(i, 2) = Application.WorksheetFunction.Index(sheet_previous_extract.Range("K:K"), Application.WorksheetFunction.Match(sheet_comparison.Range("A:A"), sheet_previous_extract.Range("A:A"), 0))

i = i + 1

Loop


End Sub
...