您好我正在嘗試編寫一個宏,去一個公式中的引用單元格。因此,例如,如果我們有如下的公式: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
而且變量包含單元的名稱。我怎樣才能讓宏達到它?該名稱格式爲 'Sheet2的' $ C $ 3
你有什麼嘗試過。堆棧溢出不是我的代碼或向我展示代碼網站。 –
是的,我知道,我很抱歉。只是真的不知道如何開始。 – tombata
您需要使用Left,Right和/或Mid來解析公式字符串:Selection.Formula,並使用Instr來查找某些字符,例如'!' –