【问题标题】:VBA ListFillRange populate using dynamic range from different sheetVBA ListFillRange 使用来自不同工作表的动态范围填充
【发布时间】:2019-09-25 14:57:11
【问题描述】:

当单击不同的组合框“combobox2”时,我正在尝试填充组合框下拉列表。我收到错误运行时错误 438 对象不支持此属性或方法。我还从单独的工作表中获取 listfillrange 值。我在下面包含了我的代码。

Private Sub ComboBox2_Click()

     Dim N As Long

     N = Worksheets("Regions-Offices").Cells(1, 8).End(xlDown).Row

     ActiveSheet.Cells(1, 2).Value = N

     Worksheets("Global").OLEObjects("ComboBox3").Object.ListFillRange = Worksheets("Regions-Offices").Range("H1:" & N).Address

End Sub

【问题讨论】:

  • 范围内没有第二个 H
  • 另外,您可以使用offset from H1 而不是使用N 或偏移N
  • @Nathan_Sav 我将范围更改为 Range("H1:" & "H" & N) 但是现在我收到错误 438 对象不支持此属性或方法
  • range("h1:h" & n) 我会尝试的。哪一行是错误,只是为了确定。 .address 也有一些争论
  • @Nathan_Sav 错误在以下行 "Worksheets("Global").OLEObjects("ComboBox3").Object.ListFillRange = Worksheets("Regions-Offices").Range("H1: H" & N). 地址"。即使地址已删除,错误 438 仍然存在

标签: excel vba combobox


【解决方案1】:

使用Address属性的External参数:

Worksheets("Global").OLEObjects("ComboBox3").ListFillRange = Worksheets("Regions-Offices").Range("H1:H" & N).Address(, , , True)

【讨论】:

    【解决方案2】:

    工作表名称不会在地址返回中评估,所以

    "'Regions-Offices'!H1:H" & N

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-20
      • 2019-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      相关资源
      最近更新 更多