Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ссылка на другую книгу / 9 сообщений из 9, страница 1 из 1
08.09.2005, 18:09:48
    #33259674
xom
xom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ссылка на другую книгу
Доброго времени суток!
Есть книга excel из двух листов, один из них рабочий, а во втором сохраняется служебная информация. На втором листее, назвем его "Options", в 2-х ячейках А1, В1 сохраняются полные пути имена файлов.
А на первом листе имеется ряд ячеек, которые должны ссылаться на ячейки из файлов, имена которых хранятся в Options!$A$1 и Options!$B$1
Подскажите, как синтаксически грамотно и возможно это сделать?
...
Рейтинг: 0 / 0
09.09.2005, 10:11:28
    #33260390
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ссылка на другую книгу
с помощью формул это сделать невозможно
ДВССЫЛ
См. также

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

Синтаксис

ДВССЫЛ(ссылка_на_ячейку;a1)

Ссылка_на_ячейку - это ссылка на ячейку, которая содержит либо ссылку в стиле А1, либо ссылку в стиле С1К1, либо имя, определенное как ссылка, либо ссылку на ячейку в виде текстовой строки. Если ссылка_на_ячейку не является допустимой ссылкой, то функция ДВССЫЛ возвращает значение ошибки #ССЫЛ!.

A1 - это логическое значение, указывающее, какого типа ссылка содержится в ячейке ссылка_на_текст.

Если a1 имеет значение ИСТИНА или опущена, то ссылка_на_ячейку интерпретируется как ссылка в стиле A1.


Если a1 имеет значение ЛОЖЬ, то ссылка_на_ячейку интерпретируется как ссылка в стиле С1К1.
Замечания

Если ссылка_на_ячейку является ссылкой на другую рабочую книгу (внешней ссылкой), другая рабочая книга должна быть открытой. Если это не так, функция ДВССЫЛ возвратит значение ошибки #ССЫЛКА!.
Примеры


а вот с помощью макросов можно так

Public Function Getvalue(path, File, sheet, ref)
Dim Arg As String
Arg = "'" & path & "[" & File & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)
Getvalue = ExecuteExcel4Macro(Arg)
End Function

Sub p()
Dim path As String, File As String, sheet As String, ref

path = Worksheets("Options").Range("A1").Value
File = Worksheets("Options").Range("B1").Value
sheet = "Íóæíûé ëèñò"

For z = 1 To 100
For y = 1 To 100
ref = Cells(z, y).Address(False, False)
Cells(z, y).Value = Getvalue(path, File, sheet, ref)
Next y
Next z
End Sub
...
Рейтинг: 0 / 0
09.09.2005, 10:49:50
    #33260577
xom
xom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ссылка на другую книгу
Спасибо за подсказку! По ходу дела возник еще один вопрос:
а как по отдельности получить имя файла и путь к нему (пользователь сам выбирет файл в стандартном диалоге открытия)
или получив полное имя файла (filename=GetOpenFileName) и сохранив результат в одной из ячеек Range("A1").value= "C:\Documents and Settings\xom\My Documents\Work\бюджет нов.xls" каким способом возможно "расчленение" этого значения на путь и собственно файл?
...
Рейтинг: 0 / 0
09.09.2005, 11:06:08
    #33260632
ссылка на другую книгу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Dim str As String
    Dim strPath As String
    Dim strName As String
    Dim intPos As Integer
    
    str = "C:\Documents and Settings\xom\My Documents\Work\бюджет нов.xls"
    
    intPos = InStrRev(str, "\")
    
    strPath = Mid(str,  1 , intPos)
    strName = Mid(str, intPos +  1 )
    
    Debug.Print strPath
    Debug.Print strName
...
Рейтинг: 0 / 0
09.09.2005, 11:17:31
    #33260669
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ссылка на другую книгу
Filename = Application.GetOpenFilename("*.*,*.*")

Imy = Dir(Filename)
Puti = Left(Filename, Len(Filename) - Len(a))
...
Рейтинг: 0 / 0
09.09.2005, 17:31:30
    #33261971
xom
xom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ссылка на другую книгу
Arg = "'" & path & "[" & File & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)

А можно пояснить Range(ref).Range("A1").Address(, , xlR1C1) - это ссылка на какую ячейку? и как на них выборочно ссылаться?
...
Рейтинг: 0 / 0
09.09.2005, 17:55:33
    #33262025
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ссылка на другую книгу
xomArg = "'" & path & "[" & File & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)

А можно пояснить Range(ref).Range("A1").Address(, , xlR1C1) - это ссылка на какую ячейку? и как на них выборочно ссылаться?
Range(ref) - это объект range

Range(ref).Range("A1") - это первая ячейка объекта Range(ref)

а Address потому что фунлция ExecuteExcel4Macro принимает инфо только
в стили R1C1
...
Рейтинг: 0 / 0
09.09.2005, 18:00:42
    #33262036
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ссылка на другую книгу
наверно непонятно
проще так что в ref загонишь то и получишь
Ref = "C8"
Ref = "D10"
Ref = "адрес любой тебе нужной ячейки "
...
Рейтинг: 0 / 0
09.09.2005, 18:09:15
    #33262049
xom
xom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ссылка на другую книгу
Спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ссылка на другую книгу / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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