Страницы: 1
RSS
Превратить текст из нескольких ячеек в рабочую ссылку
 
Всем привет!

У меня есть несколько ячеек, содержащих текст. Как мне можно склеить содержимое в ссылку, по которой Эксель сможет считать значение из этой ссылки? Ссылка ведёт в другую книгу.

То есть, мне нужно, чтобы в файле H79N.xlsx в яейке А1 появилось значение D, которое содержится в файле 43.xlsx в папке W43.

Буду рад любой помощи.
 
Функция ДВССЫЛ преобразует переданный ей текст в ссылку. Но работает эта функция только с открытыми книгами. Иначе - только макрос.
 
Код
Sub FillRef()
    Dim arr As Variant
    arr = Range("B2:F2")
    Dim brr As Variant
    ReDim brr(1 To UBound(arr, 2))
    Dim x As Integer
    For x = 1 To UBound(arr, 2)
        brr(x) = arr(1, x)
    Next
    [A1].Value = "=" & Join(brr, "")
End Sub
 
Если в диске D есть папка "Папка001", в ней excel-файл "Книга002.xlsm", в нём лист "Лист003", а значение ячейки R9 этого листа равно допустим 1450099
И если в ячейках листа (куда мы пишем формулу) такие значения:
в A1: D:\Папка001
в A2: Книга002.xlsm
в A3: Лист003

То, формула:
Код
=ДВССЫЛ("'"&A1&"\["&A2&"]"&A3&"'!R9")
вернёт 1450099.

Для наглядности формулу можно написать так:
Код
=ДВССЫЛ(  "'"  &  A1  &  "\["  &  A2  &  "]"  &  A3  &  "'!R9" )
Ещё попробуйте внутри формулы выделить текст от 1-й кавычки до последней кавычки включительно и нажать F9 (высчитать выделенную часть формулы) и посмотрите что изменилось при нажатии.
Изменено: Бахтиёр - 17.11.2021 15:49:31
 
vikttur,
Код
Sub Test5()

ActiveSheet.Select

[B10] = [B6]

End Sub

Работает, но чтобы заработало, то в ячейку надо поставить курсор и нажать Enter. Как сделать, чтобы считывалось без Enter?
 
Цитата
написал:
но чтобы заработало
надо записывать изначально не как значение, а как формула, видимо:
Код
[B10].Formula = [B6].Value
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, сработало! Спасибо.

МатросНаЗебре, ошибка в
Код
[A1].Value = "=" & Join(brr, "")

Не работает (

Бахтиёр, получилось так:
Код
=ДВССЫЛ(  "'"  &  C13  &  "\" &D13& "\["  &  E13  &  "]"  &  F13  &  "'!O48" )

Но снова #ССЫЛКА!
 
Цитата
vikttur:  работает эта функция только с открытыми книгами.
Цитата
снова #ССЫЛКА!
У вас она открыта?
 
Бахтиёр,
да, была открыта.
 
можно файл с неработающей формулой сюда?
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
а как формула, видимо:
А как мне написать макрос, чтобы из ряда i (где есть формулы, пустые не трогать) копировались формулы, а в ряд K:M вставлять уже значения этих формул? Опять же, чтобы вставлялось только то, изначально было непустое :)

Не хочется на 60 строк писать

Код
[K5].Formula = [I5].Value
...


Я думал циклом, но запнулся на том, что не могу вписать два цикла...

Код
Sub Count()
Dim CR As Range
Dim PR As Range
Set CR = Range("I5:I63")
Set PR = Range("M5:I63")

    For i = 1 To CR.Count
        Cells(i).Formula = Cells(k).Value
    Exit For
    

Next
End Sub


Прощу помощи :)
 
Вопрос не по теме
Страницы: 1
Наверх