我想出了一些使用VBA在文本文件中提取某些值的代码。我需要它循环多次,因为表达式'INFORMATION DE BASEETDONNÉESDECALCUL'出现在文本文件中。到目前为止,这是我的代码:
文本文件的例子:
INFORMATION DE BASE ET DONNÉES DE CALCUL
Nom de l'individu ................. Louis Boutel
Sexe .............................. Homme
Numéro d'assurance sociale ....... 323-423-123
No employé ........................ 14023
Date de naissance ................. 1969-03-22
Date d'emploi ..................... 1998-09-28
INFORMATION DE BASE ET DONNÉES DE CALCUL
Nom de l'individu ................. Morin laprise
Sexe .............................. Homme
Numéro d'assurance sociale ....... 123-012-012
No employé ........................ 14023
Date de naissance ................. 1959-06-14
Date d'emploi ..................... 1996-10-22
我希望能在Excel中使用:
INFORMATION DE BASE ET DONNÉES DE CALCUL
Date d'emploi 1998-09-28
INFORMATION DE BASE ET DONNÉES DE CALCUL
Date d'emploi 1996-10-22
代码:
Sub test()
Dim myFile As String, text As String, textline As String, DDC As Integer, i As Integer, sArray(4) As String
myFile = "C:\Users\mark\Desktop\C0010DET.txt"
Open myFile For Input As #1
Do Until EOF(1)
Line Input #1, textline
text = text & textline
Loop
Close #1
i = 1
Dim vItm As Variant
Dim aStrings(1 To 2) As String
aStrings(1) = "INFORMATION DE BASE ET DONNÉES DE CALCUL": aStrings(2) = "INFORMATION DE BASE ET DONNÉES DE CALCUL"
For Each vItm In aStrings
DDC = InStr(text, "Date d'emploi")
Cells(i + 1, 1).Value = Mid(text, DDC, 14)
Cells(i + 1, 2).Value = Mid(text, DDC + 36, 10)
Next vItm
End Sub
您知道如何使用循环运行此序列,以便我可以检索所需的所有信息吗?
答案 0 :(得分:0)
未测试:
Sub test()
Const S_HDR As String = "INFORMATION DE BASE ET DONNÉES DE CALCUL"
Const S_DT As String = "Date d'emploi"
Dim myFile As String, textline As String
Dim c As Range
myFile = "C:\Users\mark\Desktop\C0010DET.txt"
Set c = ActiveSheet.Range("A1")
Open myFile For Input As #1
Do Until EOF(1)
Line Input #1, textline
textline = Trim(textline)
If textline Like S_DT & "*" Then
c.Value = S_HDR
c.Offset(1, 0).Value = S_DT
c.Offset(1, 1).Value = Right(textline, 10)
Set c = c.Offset(2, 0)
End If
Loop
Close #1
End Sub