powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / excel/vba
4 сообщений из 4, страница 1 из 1
excel/vba
    #32365337
noxs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всему народу.

Суть:

В Visual Basic Editor пишу свою функцию, которая на вход должна принимать матрицу (в математическом смысле этого слова) или объект типа Range (в терминах Excel).

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

Я решила реализовать эту проверку следующим образом: написала в Visual Basic Editor такую простенькую функцию:

Function test (R As Range)
Range("A1").Value = R.Areas.Count
End Function

далее задала несколько численных матриц (D7:E9, F10, G10:H11, I10, J15) в текущем Worksheet, вызвала функцию test (она появилась в списке функций, определенных пользователем), задала в качестве аргумента объединение этих матриц (при помощи выделения курсором с Ctrl) и ожидала в ячейке A1 увидеть количество этих матриц.

Однако, в ячейке A1 стоит формула
=test(D7:E9;F10;G10:H11;I10;J15), результат которой не определен.

Вопрос1.

Почему результат формулы не определен? Может я не правильно решаю поставленную задачу?

Спасибо большое за советы.
...
Рейтинг: 0 / 0
excel/vba
    #32365506
Ромашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне кажеться все дело в том, что ты не присваиваешь результат функции.
function test(R As Range)
dim x as integer '
X = R.Areas.Count
test = X
end function
...
Рейтинг: 0 / 0
excel/vba
    #32365597
Ромашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо протестила... Оказывается не правильно передается диапазон для функции (R As Range) он может содержать только один диапазон можно попробывать и так:
Function test(R1 As Range, R2 As Range)
test = Union(R1, R2).Areas.Count
End Function
...
Рейтинг: 0 / 0
excel/vba
    #32365858
noxs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Ромашка:

спасибо за попытку помочь

насчет Union мысль понятная, но к сожалению мне такая проверка не подходит, так как пользователь, вызывая функцию test из списка функций, может задать в качестве аргумента произвольное объединение прямоугольных матриц, которое с точки зрения excel все равно рассматривается как Range.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / excel/vba
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]