【问题标题】:VBA copy value of named_range into TextBox命名范围的VBA复制值到文本框
【发布时间】:2018-01-02 17:35:44
【问题描述】:

命名范围(或用户定义范围)有 6 列,但行数可能会根据其他功能而变化。

现在尝试将该范围的整个值、所有 6 列和所有行的值放入 TextBox。由制表符分隔的行。

以下代码返回对象定义错误等。

UserForm1.TextBox1.Value = Sheet1.Range("named_range").Value

非常感谢任何帮助。

编辑:

FunThomas 是对的,我将能够获得范围的值,而无需将其声明为单独的行。所以我从下面的代码开始,它可以很好地显示多行 msgBox 中的范围。

如何去掉多余的 InputBox,并在 UserForm1.TextBox1 中显示结果,而不是在功能有限的 msgBox 中显示结果。

Sub showOfferRange()
Dim xRg As Range
Dim xTxt As String
Dim xCell As Range
Dim xStr As String
Dim xRow As Long
Dim xCol As Long
On Error Resume Next
  xTxt = ThisWorkbook.Names("offers_running")
Set xRg = Application.InputBox("Offer range:", "Display offers", xTxt, , , , , 8)
'Set xRg = xTxt
If xRg Is Nothing Then Exit Sub
   On Error Resume Next
For xRow = 1 To xRg.Rows.Count
    For xCol = 1 To xRg.Columns.Count
        xStr = xStr & xRg.Cells(xRow, xCol).Value & vbTab
    Next
    xStr = xStr & vbCrLf
Next
    MsgBox xStr
End Sub

【问题讨论】:

  • 不确定该链接与我的问题有何关联。
  • 您可能想要访问工作簿的sheet1,但您正在访问一个名为sheet1 的变量。所以我假设你需要thisWorkbook.sheets("sheet1")activeWorkbook.sheets("sheet1") 之类的东西,但这只是猜测。该链接说明了如何访问工作簿和工作表对象。
  • 抱歉,刚刚了解到您可以通过其名称(“codeName”)作为对象访问工作表 - 不知道这一点。如果工作表不存在,您将收到错误424 - Object required。如果这不是您的错误,请尝试通过将范围的值分配给一个变体变量来将您的代码分成两行,然后将该变量分配给您的用户表单。哪一行抛出错误?
  • 我用新代码编辑了这个问题。几乎需要一些调整。

标签: vba textbox named-ranges


【解决方案1】:

基本上,将文本写入表单的文本框,只是

UserForm1.TextBox1.text = UserForm1.TextBox1
UserForm1.show

由于您有多行,请不要忘记将文本框的MultiLine-Property 设置为true

另一点:您应该更改读取范围的行。 on error resume next 是一个非常危险的声明,因为它会吞噬所有错误,并且您可能会完全迷失以找到错误。只需要捕获输入框不返回Range 的情况(例如,因为按下了取消)。所以我建议你把声明改为

xTxt = ThisWorkbook.Names("offers_running")
Set xRg = Nothing
On Error Resume Next
Set xRg = Application.InputBox("Offer range:", "Display offers", xTxt, , , , , 8)
On Error Goto 0
If xRg Is Nothing Then Exit Sub

【讨论】:

  • 效果很好,感谢您的建议!最后一个问题如何摆脱输入框?我不想要这个额外的步骤。当我使用 Set xRg = xTxt 时,出现类型不匹配错误。可能试图将字符串作为范围传递。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-05
  • 2017-10-01
  • 2018-12-18
  • 1970-01-01
  • 2014-04-08
相关资源
最近更新 更多