VBA协助过滤随机化器

时间:2018-09-28 15:41:11

标签: excel vba excel-vba

大家好,我将以下代码制作为随机数,但是并没有提供我期望的正确结果,这是所需的结果。

1-无论您使用哪个经理姓名,无论原始数据上有多少行,它始终会为您提供相同的数据

2-另外,我还需要随机化器来查找当前的星期数,如果没有数据可以返回到前一周,这我将不知道该怎么做,因此任何帮助都会令人惊奇

最后有一些图片,可以更深入地了解问题

Private Sub CommandButton1_Click()

    Dim lr As Long, wks As Worksheet

    Application.ScreenUpdating = False

    Set wks = ActiveSheet

    Sheets("Sheet2").Copy After:=Sheets(Sheets.Count)

    With ActiveSheet

        lr = .Cells(.Rows.Count, "A").End(xlUp).Row

        .Range("A1:H" & lr).Sort key1:=.Range("G1"), Header:=xlYes

        .Range("A1:H" & lr).AutoFilter Field:=7, Criteria1:="<>" &  

        Sheets("Sheet1").Range("A2").Value

        .Rows("1:" & lr).Delete Shift:=xlUp

        lr = .Cells(.Rows.Count, "A").End(xlUp)

        If lr > 5 Then

            .Range("I2:I" & lr).Formula = "=RAND()"

            .Calculate

            .Range("I2:I" & lr).Value = .Range("I2:I" & lr).Value

            wks.Range("A5:H9").Value = .Range("A1:H5").Value

        Else

            MsgBox "Please enter a valid login in order to continue"

        End If

        Application.DisplayAlerts = False

        .Delete

        Application.DisplayAlerts = True

    End With

    wks.Activate

    wks.Range("A5:H9").Sort key1:=wks.Range("A5"), Header:=xlNo

    Set wks = Nothing
    Application.ScreenUpdating = True

End Sub

[1]:https://i.stack.imgur.com/TvrgJ.png

[2]:https://i.stack.imgur.com/msRXy.png

1 个答案:

答案 0 :(得分:0)

如果我的理解正确,您正在尝试从“数据”表中选择5条随机记录,并将其填充到“审计”表中的表中。您没有提供工作表名称,因此我在代码中做了一些假设,可以进行修改以适合要求。

这只是随机记录选择器。您可以在运行之前根据需要过滤从中选择的集合。

didRangeBeaconsInRegion(...)