…but it's not your current code, is it? No mention of Sheet2 at all!
Try:
Sub GetValues2()
Sheet1LastRow = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
Sheet2LastRow = Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row
With Worksheets("Sheet1").Range("B1:B" & Sheet1LastRow)
.FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet2!R1C1:R" & Sheet2LastRow & "C2,2,FALSE)"
.SpecialCells(xlCellTypeFormulas, 16).ClearContents
.Value = .Value
End With
End Sub
If it's still too slow then we can try again.
Perhaps:
Sub GetValues3()
Set rng1 = Range(Worksheets("Sheet1").Range("A1"), Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp))
Set rng2 = Range(Worksheets("Sheet2").Range("A1"), Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp)).Resize(, 2)
cc = Application.VLookup(rng1, rng2, 2, False)
For i = 1 To UBound(cc)
If IsError(cc(i, 1)) Then cc(i, 1) = Empty
Next i
rng1.Offset(, 1).Value = cc
End Sub