Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 导航,直到没有剩余的图纸_Vba_Excel - Fatal编程技术网

Vba 导航,直到没有剩余的图纸

Vba 导航,直到没有剩余的图纸,vba,excel,Vba,Excel,我有一个学校的任务。在我的工作表上有一个按钮,上面有下一张工作表和上一张工作表。但我希望它总是检查是否可能移动到下一页 例如,三张纸。我从第1页开始,单击“下一步”。然后在第2页上单击“下一步”。我在第三张纸上,单击“下一步”,会出现一个消息框“没有剩余的工作表”。但如果我添加另一张工作表,则需要转到第四张 以下是我已经拥有的代码: If ActiveSheet.Index = Worksheets.Count Then Worksheets(1).Select Else ActiveShee

我有一个学校的任务。在我的工作表上有一个按钮,上面有下一张工作表和上一张工作表。但我希望它总是检查是否可能移动到下一页

例如,三张纸。我从第1页开始,单击“下一步”。然后在第2页上单击“下一步”。我在第三张纸上,单击“下一步”,会出现一个消息框“没有剩余的工作表”。但如果我添加另一张工作表,则需要转到第四张

以下是我已经拥有的代码:

If ActiveSheet.Index = Worksheets.Count Then
Worksheets(1).Select

Else
ActiveSheet.Previous.Select
End If
如果是ActiveSheet.Index工作表,则计数
ActiveSheet.Next.Select
其他的
MsgBox“没有更多的工作表了。”
如果结束

如果您只想在每个页面上添加命令按钮,则必须在所有页面上的每个命令按钮中复制此代码(设计模式双击命令按钮)

或者您必须创建一个模块并从命令按钮调用函数。 这样地: 在每页的命令按钮代码中:

Call newpage
在模块1中:

Public Sub newpage()
Dim sheetnum As Integer

sheetnum = ActiveSheet.Index
If sheetnum = ThisWorkbook.Sheets.Count Then
    ThisWorkbook.Sheets(1).Activate
    MsgBox "You are at last sheet returning to the first sheet."
Else
    ThisWorkbook.Sheets(sheetnum + 1).Activate

End If
End Sub

它只是简单的命令按钮。代码可以工作,但是messagebox没有出现,我仍然在同一张纸上。看看你有没有隐藏的纸。代码就像sheetnum=当前所选工作表的数量如果sheetnum=工作簿中的工作表数量->数量与最后一张工作表的数量相同,然后激活第一张工作表并启动msgbox如果我们不在最后一页,则向前运行
Call newpage
Public Sub newpage()
Dim sheetnum As Integer

sheetnum = ActiveSheet.Index
If sheetnum = ThisWorkbook.Sheets.Count Then
    ThisWorkbook.Sheets(1).Activate
    MsgBox "You are at last sheet returning to the first sheet."
Else
    ThisWorkbook.Sheets(sheetnum + 1).Activate

End If
End Sub