iT邦幫忙

0

VBA編寫求教 - 自動換行

請教各位大大,小弟正在做模擬驗證,使用亂數產生器產生數據進行模擬驗證,

我在VBA上寫了一段程式產生了巨集按鈕可以在A1:A7產生一週的亂數,可是

我想要在每按一次巨集按鈕就再自動往下產生一週(A8:A14)的亂數該如何

編寫呢?

Sub Project1_Click()
Dim rTar As Range

Randomize
For Each rTar In Range("A1:A7")
rTar = Int((21 - 1) * Rnd + 1) * 0.01
Next
End Sub

Neish iT邦研究生 1 級 ‧ 2018-08-13 08:12:28 檢舉
A1:A7 要用變數表示
類似這樣Range("A" & i & ":A " & i + 6)

另外你只要做到A8:A14就好 還是要一直無限點選加下去?
jarpay iT邦新手 5 級 ‧ 2018-08-13 10:47:26 檢舉
要一直無限的點下去,要做52週,所以會有個範圍不能超過。

1 個回答

0
paicheng0111
iT邦高手 1 級 ‧ 2018-08-13 09:35:17
最佳解答
Sub test()
  Dim r As Range, i As Integer
  
  Set r = Cells(Rows.Count, 1).End(xlUp).Cells
  If r.Address = Range("A1").Address Then
  Else
    Set r = r.Offset(1)
  End If
  
  Randomize
  For i = 0 To 6
    if r.offset(i).row > 52 then exit sub
    r.Offset(i).Value = Int((21 - 1) * Rnd + 1) * 0.01
  Next i
End Sub
看更多先前的回應...收起先前的回應...
jarpay iT邦新手 5 級 ‧ 2018-08-13 11:21:15 檢舉

感謝前輩,若是只有到52週是否還要再增加定義及一個迴圈呢?

在for迴圈之內加入if r.offset(i).row > 52 then exit sub
如果超過第52列就會離開

jarpay iT邦新手 5 級 ‧ 2018-08-14 22:04:33 檢舉

了解了. 感謝前輩指導/images/emoticon/emoticon02.gif!

jarpay iT邦新手 5 級 ‧ 2018-08-17 16:54:55 檢舉

不好意思再請教一下前輩 若是我要從A3欄位開始運行的話該怎麼寫呢?

我要發表回答

立即登入回答