如果那么循环没有正确设置值

时间:2017-06-07 15:08:05

标签: excel vba excel-vba

我有一个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

1 个答案:

答案 0 :(得分:1)

来自Siddharth:

  

我已将fieldName1,fieldName2等声明为String。该数组将遍历这些值名称,因此每个值都将设置为从记录集中提取的值。

你不能在循环中声明变量:)