Недопустимый квалификатор VBA

Я хочу использовать ActiveCell . Смещение ( 0 , 1 ). Value = Round ( Application . Max ( Range ( [D2] . Смещение ( 1 , 0 ), [D2] . Смещение ( 2 , 0 ))) / 1000 , 2 ) переменная в ячейку и возможность ссылаться на эту ячейку позже.

Поэтому я устанавливаю ячейку D2 как строку, значением которой является слово «medium». В настоящее время я делаю это, и он работает:

For

но вместо использования LoadCase = [D2] LoadCaseNeg = [D2] . offset ( 8 , 0 ) ActiveCell . Смещение ( 0 , 1 ). Value = Round ( Application . Max ( Range ( LoadCase . Offset ( 1 , 0 ), LoadCaseNeg . Смещение ( 1 , 0 ))) / 1000 , 2 ) , так как я хочу запустить Rangeцикл, чтобы сделать это несколько раз в моем коде, я хочу сказать:

Dim LoadCase As Range
Set LoadCase = Range("D2")

однако это не работает и дает мне неверную ошибку квалификатора , я новичок в VBA, так есть ли лучший способ сделать это?

vba | excel-vba | переменные | офсет | отборочные |

1

Ответов: 1


Используйте Setпеременную:

LoadCaseNeg

Вы так же нужно будет использовать Setдля (который также должен быть объявлен переменной диапазона):Set LoadCaseNeg = LoadCase.offset(8,0)

[D2]

[D2]является способом ссылки на значение, которое содержится в ячейке, а не на самой ячейке. Вы также можете ссылаться на это значение как ( Range("D2").Valueили LoadCase.Valueпосле установки переменной). Обозначение с квадратной скобкой используется не всегда так часто в коде VBA, поскольку оно не очень гибкое.

Любая базовая книга / учебник по Excel VBA должна объяснить, как работать с переменными диапазона. Это рабочая лошадь программирования Excel VBA.

vba | excel-vba | переменные | офсет | отборочные |

Ещё вопросы: | 45017238.php | | 45000788.php | | 45015761.php | | 10022954.php | | 45004499.php |

Яндекс.Метрика