我有一个动态数组(n,m),它从一个范围获取赋值。
因为该范围包含的条目不具有所有必需的值(如果输入完整,则每行5或6个值)。现在,我要删除仅包含少于3个值的数组的整个行。
此示例中的数组的形状为(60,4)。
这就是我将值分配给数组的方式:
Dim CFarr() As Variant
CFarr() = ws_src_CF.Range(ws_src_CF.Cells(ref2, 1), ws_src_CF.Cells(EoCF, lastC)).Value
感谢您的帮助!
答案 0 :(得分:2)
问题是您不能真正从数组中删除行。不必删除不需要的元素,而是必须选择想要的元素,将其复制到新数组中,并使用该新数组而不是旧数组。
您有2个选择:
1)遍历数组行,计数每一行中的空白元素,然后复制 是否将其添加到新数组。
2)在工作表中添加一列“删除”,该列将(例如基于公式)告知是否应删除该行,然后根据此列过滤工作表并将范围复制到数组。 这样一开始,您将只采用所需的元素,因此您不必删除任何内容。如果您不想更改工作表,则可以随后删除过滤器并添加列。