请求修改MultiPage跳转代码:最后选项卡时跳转至下一个Userform
实现MultiPage选项卡切换及最后一页跳转至下一个Userform的VBA方案
没问题,我帮你调整这段代码,既能保留原本切换MultiPage选项卡的功能,又能在到达最后一个选项卡时,点击按钮直接跳转到下一个Userform。
修改后的完整代码
Private Sub CommandButton3_Click() Dim iNextPage As Long With Me.MultiPage1 iNextPage = .Value + 1 ' 判断是否还有下一个选项卡 If iNextPage < .Pages.Count Then .Pages(iNextPage).Visible = True .Value = iNextPage Else ' 到达最后一个选项卡,跳转到下一个Userform ' 隐藏当前表单(可选,根据需求调整) Me.Hide ' 替换成你实际的下一个Userform名称 NextUserForm.Show ' 如果需要彻底关闭当前表单,可以用下面这行(二选一) ' Unload Me End If End With End Sub
关键改动说明
- 最后一页判断逻辑:因为MultiPage的选项卡索引从0开始,当
iNextPage等于.Pages.Count时,说明已经触达最后一个选项卡的边界,这时候触发表单跳转逻辑。 - 表单跳转处理:先隐藏当前Userform(用
Me.Hide),再显示目标表单,记得把代码里的NextUserForm替换成你实际使用的表单名称。如果不需要保留当前表单在内存中,可以改用Unload Me彻底关闭。 - 原有功能保留:原选项卡切换逻辑完全保留,只有在到达最后一页时才会触发跨表单跳转。
另外补充:如果你的MultiPage有部分页面默认设置为隐藏,原代码里的.Pages(iNextPage).Visible = True就很有必要;如果所有页面本来都是可见状态,这行代码可以保留也可以删除,不影响核心功能。
内容的提问来源于stack exchange,提问作者DerekW
相关产品推荐
相关产品推荐

