Board logo

標題: [發問] VBA 運算後自動換行 [打印本頁]

作者: PaulDing    時間: 2018-8-12 21:18     標題: 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
作者: a5007185    時間: 2018-8-13 07:53

回復 1# PaulDing


如果你要增加你的亂數範圍的話,
你可以修改For迴圈的範圍,
For Each rTar In Range("A1:A7")
  1. For Each rTar In Range("A1:A14")
複製代碼

作者: naruto018    時間: 2018-8-13 09:44

回復 1# PaulDing

參考看看
  1. Sub Project1_Click()

  2. Dim rTar As Range

  3. Randomize
  4. For Each rTar In Range("A1:A7").Offset(IIf(Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row = 1, IIf(Cells(1, 1) = "", 0, 1), Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row))
  5. rTar = Int((21 - 1) * Rnd + 1) * 0.01
  6. Next

  7. End Sub   
複製代碼

作者: 准提部林    時間: 2018-8-13 10:05

dim xEnd as range, xR as range
set xEnd=cells(rows.count,1).end(xlup)
if xEnd<>"" then set xEnd=xEnd(2)
for each xR in xEnd.resize(7)
    xR=???
next
作者: a5007185    時間: 2018-8-13 10:20

回復 4# 准提部林

請問這句語法的用意是什麼?
  1. set xEnd=xEnd(2)
複製代碼
xEnd(2)的參數源自哪裡?

謝謝指教∼
作者: ikboy    時間: 2018-8-13 11:32

  1. Sub Project1_Click()
  2. Dim rTar As Range, r&
  3. r = Cells(Rows.Count, 1).End(3).Row
  4. If Not r = 1 Then r = r + 1
  5. Randomize
  6. For Each rTar In Cells(r, 1).Resize(7)
  7. rTar = Int((21 - 1) * Rnd + 1) * 0.01
  8. Next
  9. End Sub
複製代碼

作者: 准提部林    時間: 2018-8-13 16:39

回復 5# a5007185

如果最後一格非空, 往下移一格
set xEnd=xEnd.CELLS(2, 1)  與這個意思相同
也可以 set xEnd=xEnd(2, 1)

同欄, 所以可省略第二參數




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)