I'm getting confused about the changing requirements
Did you want the VBA use of VLookup to fill in data to the worksheet, or do you want to return some kind of array with something in it, or exactly something else?
This uses VLookup in a module to fill in any missing counties on Sheet1 using the 'data base' on Sheet2
Option Explicit
Sub FillInCounty()
Dim rZipAndCounties As Range, rData As Range, rZipsWithoutCounty As Range, rBlankCounty As Range
Application.ScreenUpdating = False
'change to suit but a single cell will do to start to make it easy
Set rData = Worksheets("Sheet2").Range("A1")
Set rData = rData.CurrentRegion.EntireColumn
Set rData = Intersect(rData, rData.Parent.UsedRange)
Set rData = rData.Cells(1, 2).Resize(rData.Rows.Count, rData.Columns.Count - 1)
MsgBox rData.Address(1, 1, 1, 1)
Set rZipAndCounties = Worksheets("Sheet1").Range("J1")
Set rZipAndCounties = rZipAndCounties.CurrentRegion
MsgBox rZipAndCounties.Address(1, 1, 1, 1)
'now save any missing cities
Set rZipsWithoutCounty = Nothing
On Error Resume Next
Set rZipsWithoutCounty = rZipAndCounties.Columns(2).SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
'if no blanks then exit
If rZipsWithoutCounty Is Nothing Then Exit Sub
'MsgBox rZipsWithoutCounty.Address(1, 1, 1, 1)
For Each rBlankCounty In rZipsWithoutCounty.Cells
On Error Resume Next
rBlankCounty.Value = Application.WorksheetFunction.VLookup(rBlankCounty.Offset(0, -1).Value, rData, 2, False)
On Error GoTo 0
Next
Application.ScreenUpdating = True
End Sub