Welcome to the forum!
You are bound to run into problems. Address and names can be problems enough. Without a set standard structure, there is no sure way to parse such.
Your Instr() method should work. You would do it similar to what I did using Split(). Another method would be to use Regular Expression object. I am not that good with the patterns or I would show you that. The concept is similar to the other two methods.
Sub Main()
Dim s As String, fn As String, ad As String, a, i As Integer
fn = ThisWorkbook.Path & "\ParseTxtFile.txt"
'https://msdn.microsoft.com/en-us/library/aa265347(v=vs.60).aspx
s = CreateObject("Scripting.FileSystemObject") _
.OpenTextFile(fn, 1, 0).ReadAll
'1 line address
ad = Trim(Split(Split(s, "Address")(1), vbCrLf)(0))
'Debug.Print ad, vbCrLf, vbCrLf
'Address to Contact Phone
ad = Split(Split(s, "Address")(1), "Contact Phone")(0)
a = Split(ad, vbCrLf)
For i = 0 To UBound(a)
a(i) = Trim(a(i))
Next i
Debug.Print Join(a, vbCrLf)
End Sub
Debug.Print shows a Run result in the VBE Immediate window. Click the VBE View menu to enable it if needed. I generally put it below the Code window.
Here is a regex method.
Sub Main2()
Dim s As String, fn As String, ad As String, a, i As Integer
Dim rx As Object, tf As Boolean, m As Object
fn = ThisWorkbook.Path & "\ParseTxtFile.txt"
'https://msdn.microsoft.com/en-us/library/aa265347(v=vs.60).aspx
s = CreateObject("Scripting.FileSystemObject") _
.OpenTextFile(fn, 1, 0).ReadAll
Set rx = CreateObject("VBScript.RegExp")
With rx
'Includes Address and Contact Phone
.Pattern = "Address([\s\S]*?)Contact Phone"
tf = .Test(s)
If tf Then
Set m = .Execute(s)
ad = m(0)
ad = Right(ad, Len(ad) - Len("Address"))
ad = Left(ad, Len(ad) - Len("Contact Phone"))
a = Split(ad, vbCrLf)
For i = 0 To UBound(a)
a(i) = Trim(a(i))
Next i
Debug.Print Join(a, vbCrLf)
End If
End With
End Sub