Я просто хочу заполнить ячейки в моей электронной таблице с помощью функции VBA. Например, я хотел бы напечатать = FillHere () в ячейке, и в результате у меня будет несколько ячеек, заполненных некоторыми данными.
Я пробовал с такой функцией:
Function FillHere()
Dim rngCaller As Range
Set rngCaller = Application.Caller
rngCaller.Cells(1, 1) = "HELLO"
rngCaller.Cells(1, 2) = "WORLD"
End Function
Он ломается, как только я пытаюсь изменить диапазон. Затем я попробовал это (даже это не совсем то поведение, которое я ищу):
Function FillHere()
Dim rngCaller As Range
Cells(1, 1) = "HELLO"
Cells(1, 2) = "WORLD"
End Function
Это тоже не работает. Но это работает, если я запускаю эту функцию из VBA, используя F5! Кажется, что невозможно изменить что-либо в электронной таблице при вызове функции ... хотя некоторые библиотеки делают это ...
Я также пытался (на самом деле это была моя первая идея) вернуть массив из функции. Проблема в том, что я получаю только первый элемент в массиве (есть хитрость, которая подразумевает выделение целой области с формулой в верхнем левом углу + F2 + CTRL-SHIFT-ENTER, но это означает, что пользователь должен знать заранее размер массива).
Я действительно застрял с этой проблемой. Я не конечный пользователь, поэтому мне нужно что-то очень простое в использовании, желательно без каких-либо аргументов.
PS: Извините, я уже задавал этот вопрос, но в то время я не был зарегистрирован, и, похоже, я больше не могу участвовать в другой теме.