使用链接而不是button,使用VBA恢复到Excel中的前一个选项卡

我已经四处寻求帮助,但一直没有成功。 我发现不同的代码使用工作表上的button返回到用户所在的以前的工作表。 我工作的公司需要几乎每个工作表顶部的链接,以作为用户的导航窗格。 我已经创build了所有必要工作表的顶部链接,所有工作如预期。 我最初将代码添加到我的工作簿以在单元格“A5”中使用反向链接(上一个工作表用户已打开,而不是当前工作表之前的工作表),并且工作了一段时间,但由于我一直在工作簿中的其他项目,代码停止工作。 我将工作工作簿上的代码与非工作工作簿进行了比较,他们是相同的,我不相信其他代码导致它发生故障。 看下面的代码,有没有人有我的build议?

在将有一个后退button的工作表上,我有:

Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Selection.Count = 1 Then If Not Intersect(Target, Range("A5")) Is Nothing Then Call SelectLast End If End If End Sub 

在ThisWorkbook对象中,我有以下几点:

 Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) LastSheet = Sh.Name End Sub 

最后,我有它自己的模块中的以下内容:

 Public LastSheet As String Sub SelectLast() Application.Sheets(LastSheet).Select End Sub 

任何援助将不胜感激。 谢谢!

添加工作簿级名称“LastSheet”:

在这里输入图像说明

然后将这个代码添加到ThisWorkbook模块中:

 Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) 'EDIT ThisWorkbook.Names("lastsheet").RefersToR1C1 = "='" & Sh.Name & "'!R1C1" End Sub 

对于您的“上一张”超链接使用:

 =HYPERLINK("#LastSheet","Previous sheet") 

如果您想使用“返回”链接,并在链接中显示目标表单名称:

 =HYPERLINK("#lastsheet", "<< back to - " & SUBSTITUTE(MID(CELL("address",lastsheet),1+ FIND("]",CELL("address",lastsheet)),200),"!$A$1","")) 

克雷格,这应该为你做的伎俩

我做了一个标签看起来像一个超链接和作为一个。 我基本上已经将标签的名称存储在标签的标题中,并让工作簿select与该文本匹配的表单

 Private Sub Label1_Click() Dim strLoc As String strLoc = Label1.Caption ThisWorkbook.Sheets(strLoc).Select End Sub 

在这里输入图像说明