Private Sub test()
Dim result As String '包含0到9这十个号码的随机数
Dim randomValue As Integer
Dim randomData(10) As Integer
Dim flag As Boolean
For i = 0 To 9
flag = True
While flag = True
Randomize
randomValue = Int((9 - 0 + 1) * Rnd + 0)
If i = 0 Or search(randomValue, randomData, i) = False Then
result = result & CStr(randomValue)
randomData(i) = randomValue
flag = False
End If
Wend
Next
End Sub
Private Function search(ByVal key As Integer, ByRef data() As Integer, ByVal length As Integer) As Boolean
If length = 0 Then
search = True
Exit Function
End If
search = False
For i = 0 To length - 1
If data(i) = key Then
search = True
Exit Function
End If
Next
End Function
写好了,这个是生成随机数的,你把它放到点击按钮的事件里
用一个字典对象 会快很多.代码如下:(如果觉得还不够快 就把sheet3的A列全部读入一个数组,来减少频繁读工作表的次数也会加速不少)
Sub 挑重复()
Dim Sht2Dic, CongFuArr()
Dim N As Long
Dim Rng2 As Range, Rng3 As Range
Set Sht2Dic = CreateObject("Scripting.Dictionary")
For Each Rng2 In Sheet2.Range("A1:A" & Sheet2.UsedRange.Rows.Count)
Sht2Dic(Rng2.Value) = Sht2Dic(Rng2.Value) + 1
Next
For Each Rng3 In Sheet3.Range("A1:A" & Sheet3.UsedRange.Rows.Count)
If Sht2Dic.exists(Rng3.Value) Then
N = N + 1
ReDim Preserve CongFuArr(1 To N)
CongFuArr(N) = Rng3.Value
End If
Next
Sheet1.Columns("A") = ""
Sheet1.Range("A1").Resize(N, 1) = WorksheetFunction.Transpose(CongFuArr)
End Sub
点击开发工具--录制宏,设置一个有意义的宏名称,设置使用该宏的快捷键,如果有需要,可以输入该宏的详细说明,点击确定
从此刻开始,你的每一步操作就要保证是符合你的要的,因为excel已经开始录制你的操作步骤了,现在发现工具栏录制宏的位置变成了停止录制。
那么按照示例要,我们全选表格,字体设置为楷体,字体大小设置为16号,背景颜色设置为青绿色,如图所示,每一步都正确设置。
步骤完成以后,点击停止录制,这样批量设置表格格式的宏就录制完成了,我们点击宏,就可以发现已经保存了我们刚刚录制的宏。
当需要对其他表格设置相同的格式时,我们只需要调用这个宏就可以了,如图所示,调用宏之前的格式。
选择你想要设置格式的表格,然后点击宏,弹出宏列表框,选择你录制好的宏,点击运行,就发现,表的格式就变成了我们想要的格式。
以上是excel宏代码不难,高手请举手的详细内容。更多信息请关注PHP中文网其他相关文章!