'Vlookup loop with dynamic, named ranges

I have set three columns as named, dynamic ranges in my workbook. I can't figure out how to loop the vlookup function with all three named ranges. My named ranges are defined and working, I just can't get them working in the vlookup loop.

Once the vlookup finishes, I do another loop to replace any results with the value "alerted". I used to have this vlookup working with non-named ranges, but my data is changing so much I'd rather do this fully with named ranges.

Note: ALERTED_TRANSACTION_IND starts as a blank column but has a header

Sub LOOKUP_TEST()



 'declaring variables
    Dim w As Worksheet
    Dim w2 As Worksheet
    Dim wLastrow As Long
    Dim w2Lastrow As Long
    Dim x As Long
    
    'Transaction ID named range
    Dim rngHeaders_alerted As Range
    Dim rngHdrFound_alerted As Range
    Dim Transaction_ID As Range
    
    'Transaction_Number named range
    Dim rngHeaders_raw As Range
    Dim rngHdrFound_raw As Range
    Dim Transaction_Number As Range
    
    'ALERTED_TRANSACTION_IND named range
    Dim rngHeaders_raw1 As Range
    Dim rngHdrFound_raw1 As Range
    Dim ALERTED_TRANSACTION_IND As Range
    
    
    
    'setting the variables to match the sheet names from the initial formatting macro
    Set w = ActiveWorkbook.Worksheets("Raw")
    Set w2 = ActiveWorkbook.Worksheets("ALERTED_TRANSACTIONS")
    
    
    
    'Setting named range for Transaction ID in the Alerted Txn Output
    Const ROW_HEADERS_ALERTED As Integer = 1
    Const HEADER_NAME_ALERTED As String = "Transaction ID"
    Set rngHeaders_alerted = Intersect(w2.UsedRange, w2.Rows(ROW_HEADERS_ALERTED))
    Set rngHdrFound_alerted = rngHeaders_alerted.Find(HEADER_NAME_ALERTED)
    Set Transaction_ID = Range(rngHdrFound_alerted, rngHdrFound_alerted.End(xlDown))
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    
    
    'Setting named range for Transaction Number in the Raw Txn Output
    Const ROW_HEADERS_RAW As Integer = 1
    Const HEADER_NAME_RAW As String = "Transaction_Number"
    Set rngHeaders_raw = Intersect(w.UsedRange, w.Rows(ROW_HEADERS_RAW))
    Set rngHdrFound_raw = rngHeaders_raw.Find(HEADER_NAME_RAW)
    Set Transaction_Number = Range(rngHdrFound_raw, rngHdrFound_raw.End(xlDown))
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    
    
    'Setting named range for Transaction Number in the Raw Txn Output
    Const ROW_HEADERS_RAW1 As Integer = 1
    Const HEADER_NAME_RAW1 As String = "ALERTED_TRANSACTION_IND"
    Set rngHeaders_raw1 = Intersect(w.UsedRange, w.Rows(ROW_HEADERS_RAW1))
    Set rngHdrFound_raw1 = rngHeaders_raw1.Find(HEADER_NAME_RAW1)
    Set ALERTED_TRANSACTION_IND = Range(rngHdrFound_raw1, rngHdrFound_raw1.End(xlDown))
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    
    'finding last row of transaction_number range
    wLastrow = Transaction_Number.End(xlUp).Row
    
    
    'using a For statement to execute the vlookup in the entire column
    For x = 2 To wLastrow
     ' On Error Resume Next
       ALERTED_TRANSACTION_IND.Value = Application.WorksheetFunction.VLookup(Transaction_Number.Value, Transaction_ID, 1, False)
    Next x
    
    
    
    'This statement replaces the ALERTED_TRANSACTION_IND id with ALERTED_TRANSACTION_IND, this is necessary for the filtering in the pivot tables
    For Each C In ALERTED_TRANSACTION_IND
        If Not IsEmpty(C.Value) Then C.Value = "Alerted"
    Next


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source