Аргумент функции Excel

Программирование на Visual Basic for Applications
Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Аргумент функции Excel

Сообщение Calvin » 14.05.2004 (Пт) 9:47

Здраствуйте уважаемые, помогите разобраться с проблемой.
В одном из своих документов я пользуюсь функцией ПРОСМОТР. В общем первый аргумент - это "критерий" по которому будет вестись поиск в определенном диапазоне, а второй аргумент - это сам диапазон. Дело в том, что этот диапазон находится в другой книге, которая находится в другой папке. Но проблема в том, что эта книга постоянно меняет свое месторасположение. И я бы хотел вводить этот путь в определенную ячейку и при изменении расположения книги, менять значение в этой ячейке. А в тех ячейках, где у меня функция ПРОСМОТР во втором аргументе ссылаться на ячеку, где расположен путь. Но проблема в том, что формат значения (пути) = "\\Server\Папка\Книга1.xls". А аргумент в функции ПРОСМОТР должен иметь формат '\\Server\Папка\Книга1.xls' (с одинарными кавычками). Как привести это к нужному результату :?:
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 14.05.2004 (Пт) 9:59

Функция Replace не спсет отца русской демократии?

Код: Выделить всё
replace(src,chr(34),"'",,,vbtextcompare)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.05.2004 (Пт) 10:04

Код: Выделить всё
ActiveWorkbook.ChangeLink "c:\excel\book1.xls", "c:\excel\book2.xls", xlExcelLinks
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.05.2004 (Пт) 10:51

GSerg, шаман!!! :)
А я то, бедный, мучался, когда книга "путешествовала" :)
Lasciate ogni speranza, voi ch'entrate.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 14.05.2004 (Пт) 11:25

Вот в том то и дело, что не спасет - это же посредством VBA, а мне нужно в ячейке формулу забивать. Как ето сделать? (может туплю???)

2GSerg а что этот код делает?
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.05.2004 (Пт) 12:29

Это рульный код :)
Но если тебе нужно обойтись именно формулами в ячейке, то есть функция ЗАМЕНИТЬ().
Lasciate ogni speranza, voi ch'entrate.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 14.05.2004 (Пт) 13:42

В общем, я так понял, эта задача через Excel не разрешима.
Просто если бы вы проэкспериментировали, то стало бы все ясно.
Проблема в том, что если в ячейку забиваешь значение '\\Server\Папка\[Книга1.xls]Лист1'!A$5:A$6 и потом приравниваешь какую-либо ячейку к этой и потом копируешь последнюю и в нее же специальной вставкой вставляешь значение, то первый символ " ' " пропадает. Точно также когда выводишь диалоговое окно функции и ссылаешься на ячейку с этим значением, то в диалоговом окне значение аргумента также выводится без первого символа " ' ".
Во-вторых, когда выводишь диалоговое окно функции, то значение этих ячеек аргумент функции воспринимает в двойных кавычках, которые заменить НЕВОЗМОЖНО.
В общем такая фигня, малята..........
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.05.2004 (Сб) 8:04

Дело не совсем в этом.
Ты можешь сгенерить корректный адрес с помощью функции АДРЕС, например, АДРЕС(1;1;4;ИСТИНА;"c:\windows\рабочий стол\[Книга2]Лист1") даст 'c:\windows\рабочий стол\[Книга2]Лист1'!A1, но ты не сможешь сослаться на этот адрес с помощью ДВССЫЛ, так как она требует, чтобы указанная книга была открыта. Хотя, может, это ограничение сняли в более поздних версиях...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 121

    TopList