Excel 我想在循环每次打印值时停止循环

Excel 我想在循环每次打印值时停止循环,excel,vba,random,Excel,Vba,Random,我使用此代码在工作表的列中获取不同的随机值,但此代码一次提供所有值。每次单击工作表按钮/活动x按钮后,我都希望逐个获取该值 例如,第一次单击时,单元格A1应填充第一个随机值,然后每次单击时,应填充A2、A3、A4和A5单元格。一旦所有的单元格都填满了,点击按钮什么都不会发生 Option Explicit Sub RAND1() Dim myStart As Long Dim myEnd As Long Dim i As Long Dim a() Dim sh As Worksheet

我使用此代码在工作表的列中获取不同的随机值,但此代码一次提供所有值。每次单击工作表按钮/活动x按钮后,我都希望逐个获取该值

例如,第一次单击时,单元格A1应填充第一个随机值,然后每次单击时,应填充A2、A3、A4和A5单元格。一旦所有的单元格都填满了,点击按钮什么都不会发生

Option Explicit

Sub RAND1()
Dim myStart As Long
Dim myEnd As Long
Dim i As Long
Dim a()
Dim sh As Worksheet

    Set sh = Sheet1
    myStart = 1
    myEnd = 5

ReDim a(0 To myEnd - myStart)

    With CreateObject("System.Collections.SortedList")

        Randomize

            For i = myStart To myEnd
            .Item(Rnd) = i
            Next i

                For i = 0 To .Count - 1
                a(i) = .GetByIndex(i)
                Next

    End With

sh.Range("a1").Resize(UBound(a) + 1).Value = Application.Transpose(a)

End Sub