2. В таблице Excel для того чтобы получить значение ячейки из другой книги
нужно в ячейку вставить ссылку типа "='путь к файлу[Имя файла]Лист'!Ячейка".
Если известны все эти данные - как получить значение этой ячейки используя
функцию VBA, есть ли что-нибудь типа:
function Переменная() as double
Переменная = Workbook("АдресФайла").Worksheet("ИмяЛиста").Range("A1").Value
end function
Заранее спасибо
> 1. Возможно ли написать функцию, которая будет определять номер ячейки
> ("А1"
> или "R1C1") в которой находится, без указания ссылки на саму себя.
Не вижу большого смысла в задаче (или в ее постановке), но...
=АДРЕС(СТРОКА();СТОЛБЕЦ())
=ЯЧЕЙКА("address";ДВССЫЛ("RC";0))
> 2. В таблице Excel для того чтобы получить значение ячейки из другой книги
> нужно в ячейку вставить ссылку типа "='путь к файлу[Имя
> файла]Лист'!Ячейка".
> Если известны все эти данные - как получить значение этой ячейки используя
> функцию VBA, есть ли что-нибудь типа:
>
> function Переменная() as double
> Переменная =
> Workbook("АдресФайла").Worksheet("ИмяЛиста").Range("A1").Value
> end function
Единственный известный способ (без открытия файла):
http://www.j-walk.com/ss/excel/tips/tip82.htm
но он не действует из формулы в ячейке.
Можно конечно попытаться использовать ADO, но это будет неприлично медленно:
http://www.sql.ru/forum/actualthread.aspx?bid=46&tid=443671&hl=ado
Вообще, эта тема довольно подробно освещена здесь: http://tinyurl.com/3avzae
--
KL
[MVP - Microsoft Excel]
RU: http://www.mvps.ru/Program/Default.aspx
ES: http://mvp.support.microsoft.com/?LN=es-es
EN: http://mvp.support.microsoft.com/?LN=en-us
Profile: http://mvp.support.microsoft.com/profile/Kirill
Нет, объяснил непонятно. Не вижу связи между "А1" и 2 :-(
Если тебе нужно знать в коде функции, откуда она вызвана, то используй
Application.Caller
Например, если функция вызывается из ячейки, то:
Public Function MyTest()
Dim rng As Range
Set rng = Application.Caller
MyTest = rng.Address(, , , True)
MsgBox rng.Address(, , , True)
End Function
См. мой первый ответ. Public Function Пример2() работает, но только из-под
VBA. В Excel нет родного способа получать значения из закрытой книги с пом.
формулы в ячейке, кроме прямого ввода ссылки.