Страницы: 1
RSS
Применение формул написанных через Power Query, Как применить формулу написанную в power query (гиперссылки)
 
Добрый вечер, появилась нужда применить формулу написанную в power query. Нашел пока что единственный способ замены = на =. В ручную формулы применяются и становятся гиперссылками. Однако при записи макроса и воспроизведении этого макроса = меняется на = но гиперссылки не применяются и остаются написанными формулами.
Подскажите если есть идеи, не хочется каждый раз в ручную менять = на = ;-)
Использовал формулу:

Cells.Replace What:="=", Replacement:="=", MatchCase=True
Изменено: Александр Кожуров - 04.05.2024 01:22:18
 
Не знаю правильно понял или нет, но в Power Query нельзя сделать гипер ссылку, есть вариант в Power Query сформировать путь в виде текста, а в самом Excel через формулу сделать гиперссылку
=ГИПЕРССЫЛКА(<путь из Power Query>)
 
Да все верно,у меня так и сделана гиперссылка в PQ, но, чтобы ее применить, нужно нажать на ячейку или F2 а потом Enter. Иначе она остается как текст, а не становится гиперссылочной формулой.
Чтобы применить все формулы сразу, я в ручную заменяю = на =, и, все что находится в ячейках становится гиперссылками. Но вот если макросом заменить = на =, то формулы так и остаются текстом и не становятся гиперссылками. Остаются как на 1 фото до замены.
Изменено: Александр Кожуров - 04.05.2024 21:40:08
 
Александр Кожуров, сразу скажу, что в макросах не силен, но может Экселю нужно дать понять, что в ячейке формула, например так: выделяете диапазон и запускаете макрос
Код
Sub HyperLink()
    Dim rng As Range
    For Each rng In Selection
        rng.FormulaLocal = rng.Value
    Next rng
End Sub
 
может быть так:
Код
Sub wrk()
'Номер строки в которой менять текст на гиперссылку
Dim i As Integer
'Переменная куда будем записывать текст для преобразования в гиперссылку
Dim s As String
'Меняем текст в строках с 5 по 7 и колонке 15 на гиперссылку
  For i = 5 To 7
      ActiveSheet.Range(Cells(i, 15), Cells(i, 15)).Select
      s = ActiveSheet.Cells(i, 15)
      ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=s, TextToDisplay:=s
  Next i
End Sub
 
Код
With ActiveSheet
Intersect(.Range("B:B"), .UsedRange).FormulaLocal = Intersect(.Range("B:B"), .UsedRange).Value
End With
По вопросам из тем форума, личку не читаю.
 
Alex, Благодарю, все заработало. Другие способы тоже сработали Alice, БМВ,. УРА!!! ;-)
Страницы: 1
Наверх