【问题标题】:How to clear DropDown List within a With block in VBA?如何在 VBA 的 With 块中清除下拉列表?
【发布时间】:2017-01-21 06:07:20
【问题描述】:

我有一个 With 块,它有一个条件来查看下拉列表中是否存在值。

   With wb.Sheets("BudgetLines").DropDowns("Drop Down 22")

    For Each c In refData.Range("G7:G" & LastRow_RefData).Cells

    Set Findo = wb.Sheets("BudgetLines").Cells.Find(c.Value, LookIn:=xlValues, _
                        SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _
                        MatchCase:=False, SearchFormat:=False)






    If Findo Is Nothing Then
                Debug.Print "Name was not found."

                'DropDowns("Drop Down 22").Clear
            Else
               Debug.Print "Name found in :" & Findo.Address

                'Add title to drop down box
                .AddItem c.Value

            End If

    Next


End With

但是,我想完全清除下拉列表。我已经尝试过 .Clear 但它似乎没有收到,因为它位于 With 块中。

有没有办法在 With 块中做到这一点?

【问题讨论】:

  • 你试过 .ClearContents 吗?
  • 没有多少指向 With 阻止一个成员调用。

标签: excel with-statement vba


【解决方案1】:

您需要RemoveAllItems 函数

Dim dd As DropDown
Set dd = wb.Sheets("BudgetLines").DropDowns("Drop Down 22")

With dd
    .RemoveAllItems
End With

看到这一点的诀窍是声明一个变量Dim dd As DropDown,它让我在. 时看到RemoveAllItems 函数。

【讨论】:

  • 啊!谢谢,认为它可能很清楚或类似的东西!
  • @user3565164 如果它可以帮助您解决问题,请考虑将答案标记为有帮助(通过投票)并接受(通过单击投票按钮下方的灰色复选标记)。您的上述评论表明情况就是这样。这有助于社区专注于其他未解答的问题。
猜你喜欢
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 2020-07-05
  • 2015-01-11
  • 2022-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多