在vba中执行直到循环
我写了一个vba,当我掷6000次骰子时,它会计算1掷骰子的次数,2掷骰子的次数,依此类推直到6掷骰子的次数在vba中执行直到循环,vba,Vba,我写了一个vba,当我掷6000次骰子时,它会计算1掷骰子的次数,2掷骰子的次数,依此类推直到6掷骰子的次数 Private Sub CommandButton2_Click() i = 6000 Do Until i < 0 n = Int(1 + Rnd * (6 - 1 + 1)) TextBox1.Text = Range("A1") TextBox2.Text = Range("A2") TextBox3.T
Private Sub CommandButton2_Click()
i = 6000
Do Until i < 0
n = Int(1 + Rnd * (6 - 1 + 1))
TextBox1.Text = Range("A1")
TextBox2.Text = Range("A2")
TextBox3.Text = Range("A3")
TextBox4.Text = Range("A4")
TextBox5.Text = Range("A5")
TextBox6.Text = Range("A6")
If n = 1 Then
Range("A1") = Range("A1") + n
ElseIf n = 2 Then
Range("A2") = Range("A2") + n / 2
ElseIf n = 3 Then
Range("A3") = Range("A3") + n / 3
ElseIf n = 4 Then
Range("A4") = Range("A4") + n / 4
ElseIf n = 5 Then
Range("A5") = Range("A5") + n / 5
ElseIf n = 6 Then
Range("A6") = Range("A6") + n / 6
End If
i = i - 1
Loop
End Sub
Private子命令按钮2\u单击()
i=6000
直到i<0为止
n=Int(1+Rnd*(6-1+1))
TextBox1.Text=范围(“A1”)
TextBox2.Text=范围(“A2”)
TextBox3.Text=范围(“A3”)
TextBox4.Text=范围(“A4”)
TextBox5.Text=范围(“A5”)
TextBox6.Text=范围(“A6”)
如果n=1,则
范围(“A1”)=范围(“A1”)+n
如果n=2,则
范围(“A2”)=范围(“A2”)+n/2
如果n=3,则
范围(“A3”)=范围(“A3”)+n/3
如果n=4,则
范围(“A4”)=范围(“A4”)+n/4
如果n=5,则
范围(“A5”)=范围(“A5”)+n/5
如果n=6,则
范围(“A6”)=范围(“A6”)+n/6
如果结束
i=i-1
环
端接头
它工作正常,但问题是加载速度太慢,有没有办法固定此代码?请尝试此代码。它会立即给出结果
Option Explicit
Private Sub CommandButton2_Click()
Dim i As Long
Dim n As Long
Dim results As Variant
results = Array(0, 0, 0, 0, 0, 0)
' read results from cells A1 - A6
For i = 1 To 6
results(i - 1) = Cells(1, i).Value
Next i
' roll the dice 6000 times
For i = 1 To 6000
n = Int(Rnd * 6)
results(n) = results(n) + 1
Next i
' write results to cells A1 - A6
For i = 1 To 6
Cells(1, i).Value = results(i - 1)
Next i
End Sub
Private Sub CommandButton2_Click()
Dim Arr(1 To 6) As Integer
Dim n As Integer ' random number: 1 to 6
Dim i As Long ' loop counter: turns
Randomize
For i = 1 To 6000
n = Int(1 + Rnd * (6 - 1 + 1))
Arr(n) = Arr(n) + 1
Next i
Range("A1").Resize(UBound(Arr)).Value = Application.Transpose(Arr)
For i = 1 To UBound(Arr)
Me.Controls("TextBox" & i).Value = Arr(i)
Next i
End Sub
文本框和工作表单元格之间的交互不清楚。无论您想以何种方式建立,都很容易。当然!从循环之前的单元格中提取值,并将其存储在变量中。继续更改变量的值,并且只在循环完成其工作后设置单元格的值。这是有效的,但是当我再次单击按钮时。计数的数字会重置。这是因为您的问题没有指定要保留的数字(如果有)。也没有提及任何流程或评估。您可能希望将新结果添加到工作表中,或添加到文本框中,或显示在下一列中。你只是不说。最好的方法是编辑你的问题,包括你想要的。