Public addrow As Long

'提取并删除

Public rndrow2 As Long

Public minnum2 As Long

Public maxnum2 As Long

Private Sub CommandButton清空结果_Click()

addrow = 0

With ThisWorkbook.Worksheets("提取结果")

.UsedRange.ClearFormats

.UsedRange.ClearContents

End With

End Sub

Private Sub CommandButton提取1_Click()

With ThisWorkbook.Worksheets("操作界面")

'判断输入参数,并赋值到变量

Dim minnum As Long

Dim maxnum As Long

If .Cells(2, "C").Value <> "" And .Cells(5, "C").Value <> "" Then

minnum = .Cells(2, "C").Value

maxnum = .Cells(5, "C").Value

Else

MsgBox "参数未输入完全"

Exit Sub

End If

'生成随机提取的行

Dim rndrow As Long

rndrow = 生成随机整数(minnum, maxnum)

If rndrow > 0 Then '大于0就提取行

addrow = addrow + 1 '提取数据放置的行位置

ThisWorkbook.Worksheets("原数据").Rows(rndrow).Copy

ThisWorkbook.Worksheets("提取结果").Rows(addrow).PasteSpecial Paste:=xlPasteAll

End If

End With

'ThisWorkbook.Worksheets("提取结果").Activate

'ThisWorkbook.Worksheets("提取结果").Cells(addrow, 1).Select

End Sub

Public Function 生成随机整数(ByVal lrnd As Long, ByVal urnd As Long) As Long

'--------------------------------随机整数

生成随机整数 = Application.WorksheetFunction.RandBetween(lrnd, urnd)

End Function

Private Sub CommandButton提取2_Click()

With ThisWorkbook.Worksheets("操作界面")

'判断输入参数,并赋值到变量

'判断是否是首次提取

If addrow = 0 Then

If .Cells(2, "C").Value <> "" And .Cells(5, "C").Value <> "" Then

minnum2 = .Cells(2, "C").Value

maxnum2 = .Cells(5, "C").Value

Else

MsgBox "参数未输入完全"

Exit Sub

End If

'生成随机提取的行

rndrow2 = 生成随机整数(minnum2, maxnum2)

End If

If rndrow2 > 0 Then '大于0就提取行

addrow = addrow + 1 '提取数据放置的行位置

ThisWorkbook.Worksheets("原数据").Rows(rndrow2).Copy

ThisWorkbook.Worksheets("提取结果").Rows(addrow).PasteSpecial Paste:=xlPasteAll

ThisWorkbook.Worksheets("原数据").Rows(rndrow2).Delete

maxnum2 = maxnum2 - 1

rndrow2 = 生成随机整数(minnum2, maxnum2)

End If

End With

'ThisWorkbook.Worksheets("提取结果").Activate

'ThisWorkbook.Worksheets("提取结果").Cells(addrow, 1).Select

End Sub