我在一个范围内有9个单元格,它们与一个用户窗体上的9个不同的文本框控件相对应,我想知道For
循环是否比9个不同的if语句更容易,更高效。以下是激活用户窗体后两个单元格的当前If
语句以及相应的文本框。
If wsCalc.Range("CCBalance1") > 0 Then
With RiskCalc.CCBal1
.Visible = True
.Value = Format(wsCalc.Range("CCBalance1"), "Currency")
End With
End If
If wsCalc.Range("CCBalance2") > 0 Then
With RiskCalc.CCBal2
.Visible = True
.Value = Format(wsCalc.Range("CCBalance2"), "Currency")
End With
End If
下面是我正在考虑使用的For
循环,但是我对使用循环还是很陌生,尤其是在将信息从工作表加载到用户窗体控件时。我觉得我还差得远,所以任何指导都将不胜感激。
For Each Cell In wsCalc.Range("CCBalance1:CCBalance9")
If Cell.Offset(0, 0) > 0 Then 'I believe this will choose the first cell in the range named above
With RiskCalc.CCBal1
.Visible = True
.Value = Format(wsCalc.Range("CCBalance1"), "Currency")
End With
End If
Next
答案 0 :(得分:1)
这未经测试,请尝试一下。它假定范围名称和文本框之间的关系看起来很简单。
Sub x()
Dim i As Long
For i = 1 To 9
If Range("CCBalance" & i).Value > 0 Then 'I believe this will choose the first cell in the range named above
With RiskCalc.Controls("CCBal" & i)
.Visible = True
.Value = Format(Range("CCBalance" & i), "Currency")
End With
End If
Next i
End Sub