excel宏(150分)

来源:百度知道 编辑:UC知道 时间:2024/09/22 13:29:33
这是第五次开贴了。
问题是把01 02到12这12个数据随机排列到AF3到AQ3里面.
条件一:有一个生成按钮,点按钮一次,随机排列一次。
条件二:我需要在下一行比如AF4=AF3,AQ4=AQ3。
以前有为朋友给出的
Sub order()
Range("AA3:AL3").Delete
Range("AA3:AL3").NumberFormat = "00"
X = 1
Do While WorksheetFunction.Count(Range("AA3:AL3")) < 12
A = Int(Rnd() * 12) + 27
If Cells(3, A) = "" Then
Cells(3, A) = Format(X, "00")
X = X + 1
End If
Loop
End Sub
但是这个要做修改,要不然条件二会出现错误13,运行时不匹配。

解决这个问题再加50分赠分,谢谢大家。

Sub order()
Range("AF3:AQ3").ClearContents
Range("AF3:AQ3").NumberFormat = "00"
X = 1
Do While WorksheetFunction.Count(Range("AF3:AQ3")) < 12
A = Int(Rnd() * 12) + 32
If Cells(3, A) = "" Then
Cells(3, A) = Format(X, "00")
X = X + 1
End If
Loop
End Sub