我正在尝试格式化下载数据,然后插入SQL。数据的性质使得会有#name之类的错误?,#n/一个无效字段等。我有一个数据类型字符串变量,每次运行循环时都会占据新单元格的值。当循环撞击带有错误的数据点时,循环崩溃了(找到我的消息框循环)。
为什么字符串不接受错误作为字符串的值?我已经看到了有关此的帖子,建议的答案是使用Iserror使用,但是我需要错误的"#n/a"部分以识别发生的,而不是跳过行。任何建议将不胜感激!谢谢:)代码的摘录如下:
'Insert static fields
Dim field As String
code = "'" & tbl.DataBodyRange(i, 1) & "'"
For j = 2 To 48
MsgBox (tbl.DataBodyRange(i, j))
field = tbl.DataBodyRange(i, j).Value
'Recursively going through each cell
If InStr(field, "#N") <> 0 Then
field = "NULL "
k = 1
它首先在MessageBox上遇到错误,消息框将显示不匹配错误。
围绕问题的一种方法是使用变体数据类型来处理错误。
当您发现字符串变量时,无法保留错误值,而变体可以。然后,您可以沿着:
的行使用代码IF ISERROR(field) THEN
field = NULL
K=1
END IF
变体也可以保持无效。
编辑:
我已经看到了有关此的帖子,推荐的答案是使用 如果Iserror,但我需要错误的"#n/a"一部分以识别 一个发生,而不是跳过行。
ISERROR
零件确定发生了错误。这条代码本身不会跳过行;它使您有机会使用该行进行其他操作,例如用null值替换错误值或其他必需值。