(VBA)在EXCEL上显示随机工作表

时间:2013-10-04 14:06:57

标签: excel excel-vba vba

我目前在1个excel文件上打开了5张,名为Sheet1Sheet2Sheet3Sheet4Sheet5。我想要Sheet1上的按钮,当我按下该按钮时,只需说Show Me。该按钮将随机显示我的文件剩余4张中的一张(Sheet2Sheet5)。

我怎样才能完成这项任务?我在谷歌上做过一些研究,无法找到解决方案。

2 个答案:

答案 0 :(得分:2)

将此宏指定给您的按钮:

Sub PickRandomSheet()
    Dim wf As WorksheetFunction
    Set wf = Application.WorksheetFunction
    Sheets("Sheet" & wf.RandBetween(2, 5)).Activate
End Sub

答案 1 :(得分:2)

我不打算发布答案但是从那时起,已经有了答案。这是我的版本。

逻辑

  1. 创建一个返回2个数字之间随机数的函数
  2. 使用该号码设置工作表,然后将其激活
  3. <强>代码

    Private Sub CommandButton1_Click()
        Dim ws As Worksheet
    
        On Error GoTo Whoa
    
        Set ws = ThisWorkbook.Sheets(RandomNumber(5, 2))
        ws.Activate
    
    LetsContinue:
        Exit Sub
    Whoa:
        MsgBox Err.Description
        Resume LetsContinue
    End Sub
    
    Public Function RandomNumber(ByVal MaxValue As Long, _
    ByVal MinValue As Long) As Long
        On Error Resume Next
        Randomize Timer
        RandomNumber = Int((MaxValue - MinValue + 1) * Rnd) + MinValue
    End Function