我的一个循环将字符串输入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
2 回答
如果使用显示的方法输入了所有数据,则Excel将不会将输入的数据视为
0002
作为数字2
- 它将将其视为字符串"0002"
.但是您正在针对
"'" & Mid(ReadData, 78, 4)
测试这些值,这意味着您将"0002"
与"'0002"
进行比较 .在将数据输入单元格时,需要添加
'
字符,而不是在进行比较之前 . 所以以下应该有效:我认为设置列“G”的numberformatLocal如下所示