VBA/Macro 获取文本框值的代码
VBA/Macro code to get the value of textbox
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
但似乎不起作用。我错过了什么?我如何让它工作。提前致谢
您应该可以使用 foo = InputBox("bar")
。
但是,如果您是从用户窗体获取它,那么它将是 foo = UserForm1.TextBox1.Value
如果 TextBox1 在名为 Main 的 sheet 上,那么您可以使用:
Worksheets("Main").TextBox1.Value
更好的是,您可以给 sheet 一个 CodeName
类似 shtMain
的东西,然后使用
shtMain.TextBox1.Value
最后,你也可以通过shapes集合来获取textbox(不过以上方法更可取)...
Worksheets("Main").Shapes("TextBox1").OLEFormat.Object.Object.Value
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
但似乎不起作用。我错过了什么?我如何让它工作。提前致谢
您应该可以使用 foo = InputBox("bar")
。
但是,如果您是从用户窗体获取它,那么它将是 foo = UserForm1.TextBox1.Value
如果 TextBox1 在名为 Main 的 sheet 上,那么您可以使用:
Worksheets("Main").TextBox1.Value
更好的是,您可以给 sheet 一个 CodeName
类似 shtMain
的东西,然后使用
shtMain.TextBox1.Value
最后,你也可以通过shapes集合来获取textbox(不过以上方法更可取)...
Worksheets("Main").Shapes("TextBox1").OLEFormat.Object.Object.Value