For reference, here's the entirety of the code I am using:
[vba]Option Explicit

Public Function doLookup()
Dim sourceWksht As Worksheet
Dim destWksht As Worksheet

' Column to use as lookup in Destination worksheet (should be first column - XXX_ID)
Dim rngLookup As Range
' Column to set user data in Destination worksheet
Dim rngDestination As Range
' Range of cells in Source worksheet to retrieve user data
Dim rngSource As Range

' First row containing data (Should be row 11 if user made no changes)
Dim startingRow As Integer
' First column containing user data (Should be column 12 if user made no changes)
Dim firstDataColumn As Integer

Dim lastColumn As Integer
Dim lastRow As Integer
Dim i As Integer

' Set source & destination worksheets - These will be function parameters in the final function
Set sourceWksht = Worksheets.Item("TEST_IMPORT")
Set destWksht = Worksheets.Item("TEST")

' Get first row containing data in Destination worksheet
startingRow = 11
firstDataColumn = 12
' Get last row & column in Destination worksheet
lastColumn = FindLastColumn(destWksht)
lastRow = FindLastRow(destWksht)
If (lastColumn < 1) Or (lastRow < 1) Then
' No data in worksheet, exit function
Exit Function
End If

' Set lookup column & destination column in Destination worksheet
If True Then
Set rngLookup = Range(destWksht.Name & "!A" & startingRow).Resize(rowSize:=lastRow - startingRow)
Set rngDestination = Range(destWksht.Name & "!L" & startingRow).Resize(rowSize:=lastRow - startingRow)
Else
'Set rngLookup = Range(destWksht.Name & "!A" & startingRow, Range(destWksht.Name & "!A" & startingRow).End(xlDown))
'Set rngDestination = Range(destWksht.Name & "!L" & startingRow, Range(destWksht.Name & "!L" & startingRow).End(xlDown))
End If

' Get first row containing data in Source worksheet
startingRow = 11
' Get last row & column in Source worksheet
lastColumn = FindLastColumn(sourceWksht) ' Need to get last column of Source worksheet here (Not current)??
lastRow = FindLastRow(sourceWksht) ' Need to get last column of Source worksheet here (Not current)??
If (lastColumn < 1) Or (lastRow < 1) Then
' No data in worksheet, exit function
Exit Function
End If

Application.EnableEvents = False
Application.ScreenUpdating = False

' Set the source range in Source worksheet to locate user data - first column will be the lookup column
Set rngSource = Range(sourceWksht.Name & "!A" & startingRow).Resize(rowSize:=lastRow - startingRow, columnsize:=lastColumn)
For i = firstDataColumn To lastColumn
' Lookup values from current column
rngDestination = WorksheetFunction.VLookup(rngLookup, rngSource, i, 0)

' Note need to reset range destination here!
Set rngDestination = rngDestination.Offset(columnoffset:=1)
Next i

Application.EnableEvents = True
Application.ScreenUpdating = True
End Function

Private Function FindLastColumn(Optional ByRef wksht As Worksheet = Nothing) As Integer
'Finds last used column
Dim lastColumn As Integer
Dim NextColumn As Integer
If wksht Is Nothing Then
' If no worksheet/workbook active, need to return 0
If ActiveSheet Is Nothing Then
FindLastColumn = -1
Exit Function
Else
Set wksht = ActiveSheet
End If
End If
'Find last column with text
If WorksheetFunction.CountA(wksht.Cells) > 0 Then
'Search for any entry, by searching backwards by Columns.
lastColumn = wksht.Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End If
FindLastColumn = lastColumn
End Function

Private Function FindLastRow(Optional ByRef wksht As Worksheet = Nothing) As Integer
'Finds last used Row
Dim lastRow As Integer
Dim NextRow As Integer
If wksht Is Nothing Then
' If no worksheet/workbook active, need to return 0
If ActiveSheet Is Nothing Then
FindLastRow = -1
Exit Function
Else
Set wksht = ActiveSheet
End If
End If
'Find last Row with text
If WorksheetFunction.CountA(wksht.Cells) > 0 Then
'Search for any entry, by searching backwards by Rows.
lastRow = wksht.Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
End If
FindLastRow = lastRow
End Function[/vba]