Function LinkedSheet(rgCell As Range) As Worksheet
'Returns the worksheet that the cell formula references
'Returns nothing if there's no formula
Dim strFormula As String
strFormula = rgCell.Cells(1, 1).Formula
If (strFormula <> "") Then
'Return the sheet that this range is linked to
End If
End Function
Может ли кто-нибудь помочь мне выполнить эту функцию? Имейте в виду, что это должно работать для внутренних ссылок, внешних ссылок, а также ссылки на листы с пробелом в имени как «Лист 1»Как получить таблицу, на которую ссылается формула ячейки
Edit: В ответ на Сиддхарт Rout, я уже пытался
Function LinkedSheet(rgCell As Range) As Worksheet
'Returns the worksheet that the cell formula references
'Returns nothing if there's no formula
Dim strFormula As String, sheetName As String
strFormula = rgCell.Cells(1, 1).Formula
If (strFormula <> "") Then
'Return the sheet that this range is linked to
sheetName = Mid(strFormula, 2, InStr(1, strFormula, "!") - 2)
Set LinkedSheet = ThisWorkbook.Worksheets(sheetName)
End If
End Function
, который не подходит для листов с пробелом в названии. Тем не менее, я не хотел публиковать это, потому что я считаю, что должен быть лучший, более эффективный способ решения проблемы, и я не хотел туннелировать мысли людей в том же направлении, в котором я пошел.
Пожалуйста, сообщите нам, что вы пробовали? Вопросы, требующие кода, должны демонстрировать минимальное понимание проблемы, которую нужно решить. Включите попытки решения, почему они не работают и ожидаемые результаты. См. Также: [Контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) –
http://www.vbaexpress.com/forum/showthread.php?19348 -Расширенное разделение-все-адреса-в-формуле & p = 142863 # post142863 –
как бы мимолетная мысль: найдите значение '!' В формуле String – Barranka