вот быстрый и грязный пример, иллюстрирующий принципы .... пусть текстовый файл будет называться «accounts.txt» со следующим содержанием:
Account 1
item 1
item 2
item 3
=========
Account 2
item 4
item 5
=========
Account 3
item 6
item 7
=========
Теперь давайте рассмотрим некоторые очень простые VBA.код, использующий Open As
и Line Input
и конструкцию цикла ....
Sub GetAccountFromTextFile(FileName As String, Accnt As String)
Dim MyLine As String, State As String
Open FileName For Input As #1
State = "Searching" ' we could make this much simpler but
' want to illustrate the different stati
' the loop is reaching
Do While Not (EOF(1) Or State = "End")
Line Input #1, MyLine ' read next line from text file
' now process as function of
' content and current state
If State = "Reading" And MyLine = "=========" Then
State = "End"
ElseIf MyLine = "Account " & Accnt Then
Selection.InsertAfter "Account " & Accnt & vbCrLf
State = "Reading"
ElseIf State = "Reading" Then
Selection.InsertAfter MyLine & vbCrLf
End If
Loop
Close #1
End Sub
вы вызываете это с помощью другой подпрограммы
Sub test()
GetAccountFromTextFile "C:\Documents and Settings\MySelf\Desktop\accounts.txt", 1
GetAccountFromTextFile "C:\Documents and Settings\MySelf\Desktop\accounts.txt", 3
GetAccountFromTextFile "C:\Documents and Settings\MySelf\Desktop\accounts.txt", 2
End Sub
Запуск теста () из любой точкиWord Doc, и в документ будет вставлено следующее:
Account 1
item 1
item 2
item 3
Account 3
item 6
item 7
Account 2
item 4
item 5
Теперь вы можете проявить большую изобретательность в своей основной подпрограмме (возможно, в диалоговой форме), как узнать имя файла и номер счета перед вами.Вы можете позвонить получателю счета, и вам нужно будет изменить условия поиска номера счета и схемы разделения в получателе.Не очень изощренно, но должно быть достаточно, чтобы вы начали.
Удачи MikeD