Здравствуйте, я пытаюсь написать макрос, который отправляется в ссылочную ячейку в формуле. Так, например, если у нас есть следующая формула:Код VBA, который отправляется в ссылочную ячейку
=IF(Sheet2!C3="","",Sheet2!C3)
Я хочу, чтобы макрос отвел меня в Sheet2 C3. Так что я нашел этот код, благодаря вам, ребята:
Dim rLast As Range, iLinkNum As Integer, iArrowNum As Integer
Dim stMsg As String
Dim bNewArrow As Boolean
Application.ScreenUpdating = False
ActiveCell.ShowPrecedents
Set rLast = ActiveCell
iArrowNum = 1
iLinkNum = 1
bNewArrow = True
Do
Do
Application.Goto rLast
On Error Resume Next
ActiveCell.NavigateArrow TowardPrecedent:=True, ArrowNumber:=iArrowNum, LinkNumber:=iLinkNum
If Err.Number > 0 Then Exit Do
On Error GoTo 0
If rLast.Address(external:=True) = ActiveCell.Address(external:=True) Then Exit Do
bNewArrow = False
If rLast.Worksheet.Parent.Name = ActiveCell.Worksheet.Parent.Name Then
If rLast.Worksheet.Name = ActiveCell.Parent.Name Then
' local
stMsg = stMsg & vbNewLine & Selection.Address
Else
stMsg = stMsg & vbNewLine & "'" & Selection.Parent.Name & "'!" & Selection.Address
End If
Else
' external
stMsg = stMsg & vbNewLine & Selection.Address(external:=True)
End If
iLinkNum = iLinkNum + 1 ' try another link
Loop
If bNewArrow Then Exit Do
iLinkNum = 1
bNewArrow = True
iArrowNum = iArrowNum + 1 'try another arrow
Loop
rLast.Parent.ClearArrows
Application.Goto rLast
MsgBox "Precedents are" & stMsg
Exit Sub
Range("stMsg").Select
Selection.Goto
И переменная содержит имя ячейки. Как я могу заставить макрос перейти к нему? Формат название 'Лист2' $ C $ 3
Что вы пробовали. Stack Overflow - это не код для меня или покажите мне сайт кода. –
Да, я знаю и прошу прощения. Просто не знаю, с чего начать. – tombata
Вам нужно будет проанализировать строку формулы: 'Selection.Formula', используя Left, Right и/или Mid, с Instr, чтобы найти определенные символы, такие как'! ' –