在VBA用户表单中使用带有if函数的循环

时间:2017-10-13 10:27:07

标签: excel vba excel-vba

我正在尝试使用IF函数的各种方法,现在我有点陷入循环。

我知道如果我必须将其放入单元格中,如何循环,但是当有IF时我不知道如何循环它以及当我必须从组合框中取值时。

这是没有循环的代码

cR = ComboBox2.Value
If IsNull(cR) = False Then
tsheet.Range("B1").Value = cR
End If
cR = ""
cR = ComboBox3.Value
If IsNull(cR) = False Then
tsheet.Range("B2").Value = cR
End If
cR = ""
cR = ComboBox4.Value
If IsNull(cR) = False Then
tsheet.Range("B3").Value = cR
End If

所以我可以想象循环看起来像:

For i = 2 To 4
For k = 1 To 3
If Not ComboBox(i).Value = vbNullString
Range("B", k).Value = ComboBox(i).Value
next
End Sub

2 个答案:

答案 0 :(得分:1)

您可以这样做(假设代码在用户表单中)。

Dim i As Long

For i = 2 To 4
    If Me.Controls("ComboBox" & i).Value <> vbNullString Then
        Range("B" & i - 1).Value = Me.Controls("ComboBox" & i).Value
    End If
Next

答案 1 :(得分:1)

如果你没有很多组合框,你可以将组合框链接到一系列单元格,然后使用Excel公式;例如 B2.formula = IF(Combo2Val)&lt;&gt;“”,Combo2Val,“”) 不需要VBA。