I don't know if you're interested in a VBA solution but,
operationally, it would be much simpler. Paste this macro into the
sheet module of the sheet that holds your data. As written, this
macro assumes your data is in Column A starting in A2. Cell A1 is the
cell into which you type the letter you want. Row 1 is frozen so that
A1 is always visible regardless of the scrolling of your data. That's
it. Type "g" into A1 (without the quotes) and your data will scroll
(in an instant) and put the first entry that starts with a "g"
immediately below A1.
To access the sheet module for your sheet, right-click on the
sheet tab,
select "View code" and paste this macro into that module. Please come
back if you need anything else. HTH Otto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RngA As Range
Dim FoundCell As Range
Dim SLetter As String
If Target = "" Then Exit Sub
If Target.Address(0, 0) = "A1" Then
SLetter = [A1].Value & "*"
Set RngA = Range("A2", Range("A" & Rows.Count).End(xlUp))
Set FoundCell = RngA.Find(What:=SLetter, LookAt:=xlWhole,
After:=RngA(RngA.Count))
With ActiveWindow
.ScrollRow = FoundCell.Row
.ScrollColumn = 1
End With
End If
End Sub