the array searchitems starts from 0, so of course ubound will add +1 to the size u think it has.
If you need Ubound to work (as the tittle of the post suggests) :
Sub Testing()
Dim SearchItems() As Variant 'we want SeachItems to be a dynamic array
Dim LR As Long, i As Long
with Sheets("MySheet")
LR = .Cells(.Rows.Count, 1).End(xlUp).Row 'an other way of Getting the number of cells in column A, note the '.' before rows
redim SearchItems ( 1 to LR, 1 to 1) ' this way ubound should work
SearchItems = .Range(.cells(1,1) , .cells(LR,1) ).Value 'an other way of doing it (strangely faster considering its bigger code, tested it)
end with
For i = 1 To LR 'or to Ubound (SearchItems)
'do stuff with SearchItems(i, 1)
Next i
'to write it back to the worksheet :
Sheets("MySheet").Range("A1:A" & LR).Value = SearchItems
End Sub