从多行字符串

时间:2016-08-11 14:44:44

标签: vba excel-vba excel

VBA从文本中读取以下内容并将其分配给变量。我需要从中提取名称(在这个例子中,它将是" Canada,Ontraio")。但是该文本将包含多个此类"名称"我应该能够将每个名称分配到一个数组中以便稍后重新调用它。

ID         = abc123    NAME       = Canada, Ontario                      
NT         = U         SIZE       =      0       BYTES                             
DT ID      = 5A        DEP        =  D E
下面的

是从文本文件中读取它的代码:

Set oFS = oFSO.OpenTextFile("c:\\users\test.txt")
txtpro = oFS.ReadAll

If InStr(strarray(intCount), "TYPE") Then
  UserName() = Split(strarray(intCount), "TYPE")
End If

If Not (Not UserName()) Then
    For TotUName = LBound(UserName()) To UBound(UserName())
       Debug.Print UserName(TotUName)
    Next
End if

1 个答案:

答案 0 :(得分:1)

我假设你知道如何循环文件中的行。

试试这个

'~~> Sample String
s = "ID         = abc123    NAME       = Canada, Ontario"
MyAr = Split(s, "=")

'~~> Check if you have " NAME " in MyAr(UBound(MyAr) - 1)
If InStr(1, MyAr(UBound(MyAr) - 1), " NAME ", vbTextCompare) Then
    Debug.Print MyAr(UBound(MyAr))
End If

以上内容会为您Canada, Ontario。以下将不会给你什么

s = "NT         = U         SIZE       =      0       BYTES     "
MyAr = Split(s, "=")

If InStr(1, MyAr(UBound(MyAr) - 1), " NAME ", vbTextCompare) Then
    Debug.Print MyAr(UBound(MyAr))
End If