想要使用旋转按钮(ActiveX控件)来显示上一张或下一张.单击该按钮时,事件成功触发并激活所需的工作表,但它包含原始工作表中的一些元素(命令,图形等),并将这些元素显示为附加图片.
向下按钮事件的示例代码:
Private Sub SpinButton_JumpToWeek_SpinDown()
Dim sh_num As String
Dim tmp_num As Integer
Application.ScreenUpdating = False
Application.EnableEvents = False
SpinButton_JumpToWeek.Value = Range("B27").Value - 1
tmp_num = SpinButton_JumpToWeek.Value
' Activate desired KTx sheet
sh_num = "KT" & tmp_num
Range("F27").Value = "" 'reset to blank
Sheets(sh_num).Activate
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Run Code Online (Sandbox Code Playgroud)
要覆盖此效果,我必须手动选择(激活)另一个工作表,然后再次选择所需的工作表.我还尝试使用宏自动化此变通方法,但不幸的是它不起作用.
有趣的是,如果我在调试模式下执行代码(使用断点和逐行步进),则不会发生此问题.
令人惊讶的是,如果我尝试通过将值(工作表名称索引)写入定义的单元格(即使用Worksheet_Change事件)来显示上一页/下一页,我就没有这样的问题.正确显示所需的页面.看照片.

此evententer图像描述的示例代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh_num As String
Application.ScreenUpdating = False
Application.EnableEvents = False
If Range("F27").Value > 0 Then
' Activate desired …Run Code Online (Sandbox Code Playgroud)