
生成A列陣列,A2為已知!A(n)=RANDBETWEEN(-50,50)/5+A2。n從3開始,如果A(n)-A(n-1)<3 運行A(n+1),如果不滿足,重新計算A(n),請問這個VBA如何撰寫!小弟對編程基本不懂,所以還請各位大俠幫幫忙。
uj5u.com熱心網友回復:
Dim n As Integer, x As Singlen = 3
Do
Do
x = RANDBETWEEN(-50, 50) / 5
Loop Until (x > 0) And (x < 3)
Range("A" & n) = Range("A" & n - 1) + x
n = n +1
Loop Until x = 300
uj5u.com熱心網友回復:
其實可以更簡單。Dim n As Integer, x As Single
n = 3
Do
x = RANDBETWEEN(0, 15) / 5
Range("A" & n) = Range("A" & n - 1) + x
n = n +1
Loop Until x = 300
uj5u.com熱心網友回復:
請參考:
Option Explicit
Sub Test()
Dim i As Integer, k As Single, n As Single
With Sheet1
k = Sheet1.Range("a2") ''這個保持不變?
For i = 3 To 300
Do
''-50~50可以看成0~100-50
n = (Rnd * 101 - 50) / 5 + k
If n - k < 3 Then
.Range("a" & i) = n
.Range("a" & i).NumberFormatLocal = "0.00_ " ''設定格式
Exit Do
End If
Loop
Next
End With
End Sub
.....
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/96717.html
標籤:VBA
