Sub CopyRandomRows()
Windows("sample rnd.xlsm").Activate
Rows("1:1").Select
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Windows("rnd sample draft.xlsm").Activate
Sheets("Random Sample").Select
Rows("1:1").Select
ActiveSheet.Paste
Dim source As Range, target As Range, randCount&, data(), value, r&, rr&, c&
Set source = Workbooks("sample rnd.xlsm").Worksheets("Sheet1").Range("A2:L5215")
Set target = Workbooks("rnd sample draft.xlsm").Worksheets("Random Sample").Range("A2")
randCount = 5
data = source.value
For r = 1 To randCount
rr = 1 + Math.Round(VBA.rnd * (UBound(data) - 1))
For c = 1 To UBound(data, 2)
value = data(r, c)
data(r, c) = data(rr, c)
data(rr, c) = value
Next
Next
target.Resize(randCount, UBound(data, 2)) = data
End Sub
這是我的代碼。我的問題是,如果我更改代碼randCount = 5
,我只能更改所需數據的數量。我希望能夠使用我的TextBox並使用它來定義要獲取的數據量。我試過randCound = TextBox1.value
和randCount = TextBox1.Text
,但似乎沒有工作。我錯過了什麼?我如何得到它的工作。在此先感謝VBA /宏代碼獲取文本框的值
'TextBox1'位於何處?它在一張紙上嗎?哪張?它是否在表單中(表單的名稱)?你使用表單控件還是ActiveX控件? – Ralph