VBA根据相关行号和范围列表select特定的行

所以我试图做一个样本select器。

我有的当前variables是用户指定的范围。

Settings.AmountColumn是一个沿着B1:H100的线条的范围。 SampleRefArr是一个行号数组,相对于Settings.AmountColumn的第一行。

例如,如果我的SampleRefArr显示(3,4,7),那么我将需要采取以下范围(B4:H4,B5:H5,B8:H8),并将它们复制到一个新的电子表格。 我已经build立了下面的代码,但没有select正确的单元格…

counter = UBound(SampleRefArr, 1) For i = 1 To counter rowSelector = SampleRefArr(i) - Settings.AmountColumn.Cells(1, 1).Row + 2 'Settings.AmountColumn.Cells(rowSelector, 1).EntireRow.Select Settings.AmountColumn(Cells(rowSelector, 1), Cells(rowSelector, 10)).Select Next i 

你可以使用这个:

 Sub RangeSelector(rng As Range, refArr As Variant) Intersect(rng, rng.Range("A" & Replace(Join(refArr, ","), ",", ",A")).EntireRow.Offset(1)).Select End Sub 

被称为像:

 RangeSelector Range("B1:H100"), Array(3, 4, 7) 

这将返回单元格“B4:H5”和“B8:H8”被选中

也许这个?

 counter = UBound(SampleRefArr, 1) For i = LBound(samplrefarr,1) To counter With Settings.AmountColumn rowSelector = SampleRefArr(i) - .Cells(1, 1).Row + 2 'Settings.AmountColumn.Cells(rowSelector, 1).EntireRow.Select .Range(.Cells(rowSelector, 1), .Cells(rowSelector, 10)).Select End With Next i