在VBA用户窗体中使用带有if函数的循环

我正在通过各种方式使用IF函数,现在我有点卡住循环。

我知道如何循环,如果我必须把它放入单元格,但我不知道如何循环它,当有一个IF,当我不得不从一个combobox的价值。

这是没有循环的代码

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 

你可以这样做(假设代码是在一个用户表单中)。

 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 

如果您没有多个combobox,则可以将combobox链接到一系列单元格,然后使用Excel公式; 例如B2.formula = IF(Combo2Val)<>“”,Combo2Val,“”)不需要VBA。