【问题标题】:DELETE from ListObject table rows meeting condition using VBA使用VBA从满足条件的ListObject表行中删除
【发布时间】:2017-03-29 07:29:06
【问题描述】:

是否可以在 VBA 中从 Excel ListObject 表中删除所有符合条件的行?我正在寻找类似于 SQL 语句的东西:

DELETE FROM MyListObjectTable WHERE MyColumn='Some Condition'

【问题讨论】:

  • 它是否连接到源?您想从源中删除它们吗?如果不是,我会在表的 sql 中使用条件 。你有没有尝试过?
  • 它已连接到 SQL,但如有必要,我可以断开该连接。我试图通过 ADO Connection 来实现,类似于您可以在此处找到的想法:stackoverflow.com/a/33807584/1903793
  • 使用listobject.querytable.connection创建ado和execute你的sql,然后刷新表。
  • 如果 C3 中存在某些条件,则 Set listObj = ActiveSheet.ListObjects("Table1") -next line - listObj.ListRows(3).Delete
  • @JohnMuggins 我有一张大桌子。我想做批量删除,而不是单个或循环。从您的建议中更好的是使用自动过滤器删除。然而,为了清晰起见,类似 SQL 的语句要好得多。

标签: vba excel delete-row listobject


【解决方案1】:

试试这个:

.- 断开连接,

.- 根据条件对ListObject 进行排序(可选的只是将条件结果放在一个Range.Area 中用于删除),

.- AutoFilter ListObject 根据条件,

.- 删除ListObject.DataBodyRange的可见行

.- 清除AutoFilter

【讨论】:

    猜你喜欢
    • 2018-03-02
    • 2016-10-20
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 2013-06-30
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多