Всем привет. Не профессионал, есть проблема. Пытаюсь определить функцию, которая проверяет соседние ячейки произвольного прямоугольного диапазона на пустоту. Проблема возникает если диапазон указываетс на другом листе книги. Такие параметры, как номер первой ячейки диапазона и количество строк и столбцов диапазона определяются корректно. А вот работа с диапазонами соседних ячеек (a,b,c,d as Range в теле функции) происходит на первом листе. edge.Select в конце кола поставлен для проверки. Активация нужного листа в теле функции не спасает и edge.Select, соответственно, выдает ошибку.
[vba]
Код
Function CheckBorder(ByRef vessel As Range) As Boolean Dim a, b, c, d As Range
Set a = Range(Cells(strow - 1, stcol - 1), Cells(strow - 1, stcol + ccount)) Set b = Range(Cells(strow + rcount, stcol - 1), Cells(strow + rcount, stcol + ccount)) Set c = Range(Cells(strow - 1, stcol - 1), Cells(strow + 1, stcol - 1)) Set d = Range(Cells(strow - 1, stcol + ccount), Cells(strow + 1, stcol + ccount))
Set edge = Union(a, b, c, d)
For Each e In edge If e.Value <> "" Then CheckBorder = False Exit For End If Next edge.Select End Function
[/vba] [moder]кнопка тега для кода макроса не fx, а #. Поправил Спасибо
Всем привет. Не профессионал, есть проблема. Пытаюсь определить функцию, которая проверяет соседние ячейки произвольного прямоугольного диапазона на пустоту. Проблема возникает если диапазон указываетс на другом листе книги. Такие параметры, как номер первой ячейки диапазона и количество строк и столбцов диапазона определяются корректно. А вот работа с диапазонами соседних ячеек (a,b,c,d as Range в теле функции) происходит на первом листе. edge.Select в конце кола поставлен для проверки. Активация нужного листа в теле функции не спасает и edge.Select, соответственно, выдает ошибку.
[vba]
Код
Function CheckBorder(ByRef vessel As Range) As Boolean Dim a, b, c, d As Range