【发布时间】:2017-06-16 02:39:22
【问题描述】:
我的一个循环将字符串输入 Excel 时遇到问题。我正在从可以是任意长度的文本文件中提取数据,但到目前为止我使用的所有数据都介于 100 行数据和 50000 行数据之间。我试图提取的字符串长 4 个字符,通常是数字,但可以是字母数字。默认情况下,字符是 0001、0002、0003 和 0004,但如果他们选择使用任何其他 4 个字符,这完全取决于我们的客户。在 Excel 中输入数据时,我只想要输入的唯一值。
可以给出整个代码,但其他一切都很好,所以我认为没有必要。如果您认为是这样,请提出请求,我将对其进行编辑。请记住,我已经尝试了许多不同的尝试,但逻辑似乎永远不会奏效。
结果是一长串行列表,其中包含文本文件中的每个值。
如果我不得不猜测,这是因为字符串是一个数字,然后 Excel 将其存储为“2”而不是“0002”,因此我已将整个列格式化为显示 4 个字符。即便如此,我认为 Excel 将其视为“2”,因此字符串永远不会与数据匹配。
感谢任何帮助。
FileName = Application.GetOpenFilename()
Open FileName For Input As #1
strSearch = "MTRDT"
Do Until EOF(1)
Line Input #1, ReadData
If Left(ReadData, Len(strSearch)) = strSearch Then
MtrdtCount = MtrdtCount + 1
MeterType = Mid(ReadData, 78, 4)
lastrow = Cells(Rows.Count, "G").End(xlUp).Row + 1
MeterTypeTest = True
For Each cell In Range("G3:G" & lastrow)
If MeterType = cell.Value Then
MeterTypeTest = False
Exit For
End If
Next cell
If MeterTypeTest = True Then
Range("G" & MeterTypeCnt) = MeterType
MeterTypeCnt = MeterTypeCnt + 1
End If
Else
End If
Loop
【问题讨论】: