перебирая ряд ячеек - PullRequest
       9

перебирая ряд ячеек

1 голос
/ 20 декабря 2011

Мне нужно запустить функцию AddColumnofData для каждой ячейки от c27 и каждой смежной непустой ячейки справа, но я получаю «Требуется объект ошибки времени выполнения 424», любая помощь woul dbe очень ценится.

Set col = Range("$C$27", Range("$C$27").End(xlToRight))

For Each c In col
    AddColumnofData (c)
Next c

Ответы [ 3 ]

3 голосов
/ 20 декабря 2011

Предполагается, что вы определили AddColumnofData как

Sub AddColumnofData(c As Range)
    ...
End Sub

Ваш звонок должен быть

AddColumnofData c

(то есть снять скобки)

Совет Джесси DIM ваши переменные, хотя не обязательно, это хороший совет. Относится также к col. Чтобы сделать его обязательным, добавьте Option Explicit в начало вашего модуля.

1 голос
/ 21 декабря 2011

Вы можете объявить или установить объекты диапазона перед передачей их в вашу функцию. Чтобы доказать, что вы передаете правильные значения своей функции, попробуйте это.

Dim r As Range '-- if you don't declare it as a range type you get a variant type as default
Dim c As Range '-- this is used to store the single cell in the For Each loop

Set r = Range("A1:D1") '-- substitute your range as per your example

For Each c In r '-- you could also use r.cells

    MsgBox c.Value '-- pass to your function instead of a call to the Message Box

Next

Это создает серию из 4 окон сообщений, содержащих значения в ячейках с A1 по D1 активной рабочей таблицы, если ваш диапазон "r" очень большой, вместо этого передайте его в Debug.Print.

0 голосов
/ 20 декабря 2011

Если вы объявите c:

Dim c as Range

, тогда то, что у вас есть, должно работать.

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