VBA代码用于保存特定范围的行

时间:2018-10-18 20:35:41

标签: excel vba excel-vba

有关以下代码的问题。我需要这个随机化器将它创建的随机条目保存在一个单独的文件中,而不会删除以前保存的条目,我该如何进行?

    Private Sub CommandButton1_Click()
    Dim lastRow As Long
    Dim shAudit As Worksheet
    Dim shData As Worksheet
    Dim r As Long
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    Dim key As Variant

    name = Range(A5, H9).Value


    Set shAudit = ThisWorkbook.Sheets("Sheet1")
    Set shData = ThisWorkbook.Sheets("Sheet2")
    lastRow = shData.Range("A" & shData.Rows.Count).End(xlUp).Row

    'Pick 5 random records with no repeats
        Do Until dict.Count = 5
        r = Application.WorksheetFunction.RandBetween(2, lastRow)
        If Sheets("Sheet1").Range("A2") = Sheets("Sheet2").Cells(r, "G") Then
          If Not dict.Exists(r) Then
              dict.Add r, r
          End If
        End If
    Loop

    r = 0
    For Each key In dict.Keys
        shData.Range("A1:H1").Offset(key - 1, 0).Copy shAudit.Range("A5:H5").Offset(r, 0)
        r = r + 1
    Next key

    End Sub

1 个答案:

答案 0 :(得分:1)

您可以在End Sub之前添加此行。更改工作表名称以适合。

Worksheets("Sheet3").Range("A" & Rows.Count).End(xlUp)(2).Resize(dict.Count) = Application.Transpose(dict.keys)