我有一个If ... Then循环嵌套在For循环中,该循环应该将SQL记录集中的值分配给VBA值,以便将它们分配给excel单元格。我已经验证了记录集有值,而我想要做的就是没有For和If..Then循环。但是,每当循环运行时,值似乎都是空的。
这是我的代码块:
Dim counter as Integer
Dim fieldName1, fieldName2, etc. As String
Dim fieldName() As Variant
fieldName = Array("fieldName1", "fieldName2", "etc.")
counter = 0
For I = 0 To UBound(fieldName())
If Not IsNull(recordSet.Fields(counter)) Then
fieldName(I) = recordSet.Fields(counter).Value
counter = counter + 1
Else : fieldName(I) = ""
counter = counter + 1
End If
Next I
执行此操作后,它成功完成且没有任何错误,并且我尝试为单元格指定值,它是一个空白字符串。
这将导致一个空字符串:
Range("C8").Select
With Range("C8")
Range("C8").Value = fieldName1
End With
然而,这将成功地将值输入到单元格中:
Range("C8").Select
With Range("C8")
Range("C8").Value = recordSet.Fields(4).Value
End With
答案 0 :(得分:1)
来自Siddharth:
我已将fieldName1,fieldName2等声明为String。该数组将遍历这些值名称,因此每个值都将设置为从记录集中提取的值。
你不能在循环中声明变量:)