【问题标题】:Remove all rows not containing values from range从范围中删除所有不包含值的行
【发布时间】:2014-04-11 02:06:10
【问题描述】:

工作表“数据”有 3000 多行,在 O 列中包含 100 多个客户。假设“客户”A1 到 A26 是:

a
b
c
d
e
...
z

代码将删除除 z 之外的所有内容,而不是除 a 到 z 之外的所有内容。我需要从“客户”表的 A 列中未列出的“数据”中删除所有客户。我哪里错了?将“dontDelete”更改为以下会产生相同的结果。 26 可以代替 14、7 等,然后该行的值将成为唯一剩下的值。

dontDelete = Array(Range("Customers!A1:A26")

我尝试将 sub 粘贴到此处,但尽管预览看起来正确,但它仍然给我一个格式错误。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    如果没有您的确切分号,很难看出您需要更改哪些内容来纠正此问题。但是,如果您像这样静态分配数组的大小

    Dim dontDelete(26) As String
    

    您实际上将数组定义为 dontDelete(0,1,2...24,25,26)。然后,如果您的循环经过 26 次迭代,它将始终以 25 结束,而不是 26。

    我建议先这样声明你的数组

    Dim dontDelete(1 to 26) as String
    

    然后再次尝试查看是否可以解决问题。

    【讨论】:

    • 范围是动态的,从 A1 到 A(x) 取决于摘要中包含多少客户。 A 中的值不是数字或单个字母,而是包含空格等的文本。
    • 再想一想,您的建议为我指明了解决问题的正确方向。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-10-01
    • 2013-04-05
    • 2023-04-02
    • 2011-02-27
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多