【问题标题】:How to populate a combo box in the userforms with names from a column in my worksheet?如何使用工作表中列中的名称填充用户窗体中的组合框?
【发布时间】:2018-01-30 15:19:11
【问题描述】:

下面是我创建的代码:

Private Sub UserForm_Activate()

Dim Total_rows_PU As Long
Total_rows_PU = Workbooks("Revised-Payroll (VBA Copy).xlsm").Worksheets("Payroll Update").Range("A" & Rows.Count).End(xlUp).Row

Me.cbxName.List = Worksheets("Payroll Update").Range("A2:A" & Total_rows_PU)

End Sub

这是我收到的错误:

这是发生错误的地方:

考虑以下答案后的工作解决方案:

Private Sub UserForm_Initialize()

Total_rows_PU = Workbooks("Revised-Payroll (VBA Copy).xlsm").Worksheets("Payroll Update").Range("A" & Rows.Count).End(xlUp).Row

Dim cell As Range

For Each cell In Range("A2:A" & Total_rows_PU)
    Me.cbxName.AddItem cell.Value
Next
End Sub

【问题讨论】:

  • 在您的Me.cbxName.List = Worksheets("Payroll Update").Range("A2:A & Total_rows_PU") 行中,您放错了结束报价。应该是Me.cbxName.List = Worksheets("Payroll Update").Range("A2:A" & Total_rows_PU)
  • 谢谢你。我修改了主要帖子并提出了一个新错误。

标签: excel vba


【解决方案1】:

这是填充组合框的正确方法:

Private Sub UserForm_Initialize()
Dim cell As Range

For Each cell In Range("A1:A9")
    Me.ComboBox1.AddItem cell.Value
Next

End Sub

它使用来自A1:A9 范围内的单元格的值填充组合框(您必须自己指定)。以下是它的工作原理:

数值表示单元格地址:)

当然,@TotsieMae 指出了很多好的资源 - 我推荐它们 :)

【讨论】:

  • 谢谢你,即使是动态的,它也能很好地工作。 :)。它们是很好的参考,但比它应该的要复杂,并且没有我现在真正需要的东西。更新了固定代码的主帖。
猜你喜欢
  • 2020-04-03
  • 2021-12-07
  • 2020-06-03
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多