我目前有一种方法可以在 excel 中接收动态命名范围并将其转换为二维数组。
如果某个列包含值,我需要对数据进行一些迭代并执行 Delete 函数。我已经查看了使用转置和临时数组删除二维数组中的行的选项,并且由于我的数据相当大,我正在查看其他数据结构,这些数据结构可以更轻松地删除整行。
我想将动态命名范围转换为 vba 中的集合。该集合将具有行号键,并且作为项目应该具有该行的所有数据。基本上,我需要能够迭代该范围内的每个值,就像我可以使用 2D 数组一样,但也需要能够有效地删除一行,并且比使用 2D 数组更轻松。
有人对我如何实现这一目标有想法吗?
Dim srcArray () As Variant
Dim srcRange As Range
srcRange = ThisWorkbook.Worksheets("Main").Range("myNamedRange")
srcArray = srcRange.Value
Dim rowNr As Long
dim colNr As Long
for rowNr = 1 to UBound(srcArray,1)
if srcArray(rowNr, 9) = "testString" Then Call DeleteRowSub(srcArray, rowNr)
Next rowNr
DeleteRowSub 将是一个 sub,它将根据该行的索引删除给定的行。我想摆脱这种情况,只能说像 srcCollection.Remove(index) 这样的东西,索引是第 nr 行。
任何帮助,非常感谢。