2014-09-29 6 views
0

Как я могу вернуть диапазон из функции, которая включает смещение от другого диапазона?Возврат диапазона из смещения из другого диапазона VBA

Это мой код (Function):

Private Function ProcessRange(rng) As Range 
    If rng <> "A1" Then 
     ProcessRange = Range(rng).Offset(r + 2) //this is the problem 
    Else 
     ProcessRange = Range("A1") 
    End If 
End Function 

Из приведенного выше примера, я пытаюсь заменить диапазон от функции смещения. Является ли это возможным?

+0

Что вы делаете с кодом? Вы знаете функции и переменные? – Tushar

+0

параметр, который я пытаюсь передать для rng, - это только строка, A1, B2 и т. Д. –

ответ

1

Есть несколько вопросов здесь:

  • Вы должны определить тип параметров
  • Используйте Set, чтобы установить диапазон возвращения
  • Вы havn't определили, что r является
  • Offset потребности два параметра, строки и столбцы
  • Поскольку вы не указали Рабочий лист, ваша функция вернет диапазон на активном листе

.

Private Function ProcessRange(rng As String) As Range 
    If rng <> "A1" Then 
     Set ProcessRange = Range(rng).Offset(2, 0) ' To Offset by 2 rows 
    Else 
     Set ProcessRange = Range("A1") 
    End If 
End Function 
+0

Спасибо, что исправил меня. Я новичок в VBA. –

Смежные вопросы