Прокручивать ячейки со значением и заполнять текстовое поле - PullRequest
0 голосов
/ 18 октября 2018

У меня есть 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

1 Ответ

0 голосов
/ 18 октября 2018

Это не проверено, но попробуйте.Предполагается, что связь между именем диапазона и текстовым полем является такой же простой, как кажется.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...