Могу ли я уменьшить это с For / Next Loop в VBA - PullRequest
0 голосов
/ 04 января 2019

Я чувствую, что должен быть способ увеличить это с помощью следующего цикла.Я хочу сделать формы видимыми на основе значения ячейки в C36.Есть ли способ увеличить имя формы для каждой итерации, а также значение?Я хотел бы использовать 100 из этих овальных форм, поэтому я надеюсь, что что-то вроде этого будет работать.Или, конечно, другие идеи

1 Ответ

0 голосов
/ 04 января 2019

Я думаю, что вы пытаетесь показать только те фигуры, для которых значение в C36 больше, чем их числовой суффикс минус один.Если это так, вы могли бы пойти по этим линиям:

Option Explicit

Private Sub Worksheet_Calculate()
    Dim i As Integer

    For i = 1 To 100
        'Shape will be visible if a value at C36 on this worksheet is larger
        'than (the shape's index suffix minus one).
        Me.Shapes("OVAL " & i).Visible = Me.Range("C36").Value > (i - 1)
    Next
End Sub

Для большей производительности считайте значение на C36 в переменную типа double, перед цикла ииспользуйте его в цикле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...