powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ссылка на другую книгу
9 сообщений из 9, страница 1 из 1
ссылка на другую книгу
    #33259674
xom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xom
Гость
Доброго времени суток!
Есть книга excel из двух листов, один из них рабочий, а во втором сохраняется служебная информация. На втором листее, назвем его "Options", в 2-х ячейках А1, В1 сохраняются полные пути имена файлов.
А на первом листе имеется ряд ячеек, которые должны ссылаться на ячейки из файлов, имена которых хранятся в Options!$A$1 и Options!$B$1
Подскажите, как синтаксически грамотно и возможно это сделать?
...
Рейтинг: 0 / 0
ссылка на другую книгу
    #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
ссылка на другую книгу
    #33260577
xom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xom
Гость
Спасибо за подсказку! По ходу дела возник еще один вопрос:
а как по отдельности получить имя файла и путь к нему (пользователь сам выбирет файл в стандартном диалоге открытия)
или получив полное имя файла (filename=GetOpenFileName) и сохранив результат в одной из ячеек Range("A1").value= "C:\Documents and Settings\xom\My Documents\Work\бюджет нов.xls" каким способом возможно "расчленение" этого значения на путь и собственно файл?
...
Рейтинг: 0 / 0
ссылка на другую книгу
    #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
ссылка на другую книгу
    #33260669
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Filename = Application.GetOpenFilename("*.*,*.*")

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

А можно пояснить Range(ref).Range("A1").Address(, , xlR1C1) - это ссылка на какую ячейку? и как на них выборочно ссылаться?
...
Рейтинг: 0 / 0
ссылка на другую книгу
    #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
ссылка на другую книгу
    #33262036
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверно непонятно
проще так что в ref загонишь то и получишь
Ref = "C8"
Ref = "D10"
Ref = "адрес любой тебе нужной ячейки "
...
Рейтинг: 0 / 0
ссылка на другую книгу
    #33262049
xom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xom
Гость
Спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ссылка на другую книгу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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