我今天第一次开始在vba中编码。我的代码应先要求用户输入,然后再从文本文件中读取。如果用户输入与文本文件中的100号匹配,则应使用100号旁边的内容填充某个单元格,直到工作表中的-。如果是GHF897-HTU71L,则应填充该单元直到GHF897。
这是文本文件
HGJDJS UFHFHFHB HHGG 0001 100000896765 GHF897-HTU71L-7811-YTHIN U1P903678 GHF897_0000000016 000001 ||||||| W69 000001 |||||||--- X72 BAL TAG 000002 ||||||| X75 CONFIG 000001 |||||||
GFHRTE 0001 100657853125 FGD867-YTURGL-TT55-YTHU/NH7 U1P903679 HFJDJH1_0000000015
Sub readFile()
Dim myValue As Variant
myValue = InputBox("Please Enter/Scan the order number", "Order Number")
Dim arr() As String
Dim i As Integer
Const strFileName As String = "C:\text2.txt"
FileNum = FreeFile
Open strFileName For Input As #FileNum
Line Input #FileNum, StrBuffer
i = 0
Do Until EOF(1)
arr = Split(StrBuffer, vbTab)
If arr(i) = myValue Then Range("D4").Value = arr(i + 1)
i = i + 1
'End If
Loop
Close #1
End Sub
应使用arr(i + 1)的值填充单元格“ d4”
答案 0 :(得分:0)
如果您的“ 100数字”位于字符串中,例如“ GHF897-”(字母,字母,字母,数字,数字,数字,破折号),则可以使用RegEx查找。下面的函数在输入字符串中搜索匹配项并将其返回。您应该能够操纵输出字符串以适合您的需求。有很多RegEx教程,可以轻松地在网上找到它们,也可以在StackOverflow中搜索更多示例和想法。
Function MatchNumber(str As String) As String
Dim intNo As Integer
Dim RegEx As Object
Dim obj As Object
Set RegEx = CreateObject("vbscript.regexp")
RegEx.Pattern = "[A-Z][A-Z][A-Z][0-9][0-9][0-9]-"
Set obj = RegEx.Execute(str)
MatchNumber = obj(0)
End Function