Я пытаюсь получить текст в ячейке через библиотеку электронных таблиц.
Существует формула, примененная к столбцу C1 =GETURL(I2)
, и он оценивает текст, который выглядит примерно так: "https://loremipsum.com/2345/view"
У меня есть другой столбец C2 с формулой, которая выводит'View' as Text
=HYPERLINK(CONCATENATE("https://loremipsum.com/",[@[Customer CID]],"/view"), "View")
Теперь, когда я пытаюсь получить текст с помощью кода C # для ячеек в столбце C2, я получаю "View", когда запускаю приведенный ниже оператор и "#Name?" Дляячеек в столбце C1.
worksheet.Cells[i, j].Text; //Outputs = "#NAME?"
Я пытался использовать =TEXT(GETURL(I2), "")
в Excel, но он по-прежнему выводит #Name! Я также пытался сделать worksheet.Cells[i, j].Value //Output = Name
Почему это то же самое утверждениедавая мне разные результаты, даже если к обеим ячейкам применена формула.
Function GETURL(cell As Range, Optional default_value As Variant)
With cell.Range("A1")
If .Hyperlinks.Count = 1 Then
GETURL = .Hyperlinks(1).Address
Else
If Left$(Replace(Replace(Replace(.Formula, " ", ""), vbCr, ""), vbLf, ""), 11) = "=HYPERLINK(" Then
Dim indexFirstArgument As Long: indexFirstArgument = InStr(.Formula, "(") + 1
GETURL = Application.Evaluate(Mid$(.Formula, indexFirstArgument, InStrRev(.Formula, ",") - indexFirstArgument))
Else
GETURL = default_value
End If
End If
End With
End Function