【问题标题】:VBA/Macro code to get the value of textboxVBA/宏代码获取文本框的值
【发布时间】:2016-03-18 00:58:28
【问题描述】:
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.valuerandCount = TextBox1.Text 但似乎不起作用。我错过了什么?我如何让它工作。提前致谢

【问题讨论】:

  • TextBox1 在哪里?是在单子上吗?哪张单子?它是在表格中(表格名称)吗?您使用的是表单控件还是 ActiveX 控件?

标签: excel vba textbox getvalue


【解决方案1】:

如果 TextBox1 在名为 Main 的工作表上,则可以使用:

Worksheets("Main").TextBox1.Value

更好的是,您可以给工作表一个 CodeName 之类的 shtMain,然后使用

shtMain.TextBox1.Value

最后,你还可以通过shapes集合进入到文本框(不过上面的方法更可取)...

Worksheets("Main").Shapes("TextBox1").OLEFormat.Object.Object.Value

【讨论】:

  • 嗯,也许将其添加为一个新问题,并提供有关您正在尝试做什么的更多详细信息
  • 哦。不知道那会奏效。我以前试过这个,发现问题是我无法先打开文件,我应该在哪里获取数据。谢谢!最简单的答案,但做的事情。我已经针对我的另一个问题发布了另一个问题。我希望你能再次帮助我
  • 应该是-> Worksheets("Main").Shapes("TextBox1").OLEFormat.Object.Value
【解决方案2】:

你应该可以使用foo = InputBox("bar")

如果您是从用户窗体获取它,那么它将是 foo = UserForm1.TextBox1.Value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-26
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多