VBAmacros编码

我一直在试图制作一个macros,但我很难找出它。 这是它应该做的。

macrosfunction:当使用macros时,只有在当前标签不是“产品”选项卡的情况下,它才应该切换到名为“产品”的工作表,如果当前标签是“产品”标签,则应该转到先前访问的标签。

使用:比方说,我在表索引3和使用macros – 它应该激活“产品”选项卡,如果我再次按它应该返回到表索引3。

我一直在尝试使用ActiveSheet.IndexSheets("Products").Index以某种方式,但我想我需要使用的东西超出了我目前的Visual Basic知识。 在声明全局variables和传递信息时,我还没有使用Public函数。

有人能指引我正确的方向吗?还是告诉我应该使用什么? 这在VBA中甚至可能吗?

你想要的是一个全局variables。 创build一个模块并放入一个像这样的全局variables:

  Global GblPreviousSheetName As String 

然后,在所有的工作表中,input以下代码:

  Private Sub Worksheet_Deactivate() GblPreviousSheetName = Me.Name End Sub 

只要用户或代码更改工作表并将Globalvariables设置为该工作表名称,就会捕获这些数据。

然后,在你的程序中,做到这一点:

  Public Sub Test() If GblPreviousSheetName = "" Then GblPreviousSheetName = "Sheet1" 'Put default sheet here (for first time workbook opens) End If 'Run whatever code you want. ActiveWorkbook.Sheets(GblPreviousSheetName).Activate End Sub 

请注意,如果用户在按下button之前更改工作表,它也会logging此信息。 如果您只希望logging您的代码所做的更改,则不要放入“Worksheet_Deactivate”代码,而只需在代码中设置全局variables。