【发布时间】:2019-05-21 00:46:02
【问题描述】:
我今天第一次开始使用 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”
【问题讨论】:
-
附带问题:您有一个文件句柄
#FileNum,然后使用EOF(1)和Close #1,应该是EOF(#FileNum)和Close #FileNum