如何select与选定单元格相同的行的值的范围?

因此,我正在使用search来查找Col1中的值(如下图所示),一旦find该单元格,我想要select该行中Col3及其以上具有值的所有项目。

例如,如果我的search正在查找val1,那么我想要将num1,num2和num3select到一个数组中。

我有search的工作,以findVAL的地址,但我一直无法弄清楚如何获得Col3中的所有值,并在右边是不是空的。

我的优秀例子

这可能有助于:

 Sub SelectNumbers() Dim foundCell As Range, lastNum As Integer, nums As Range, arr() as variant, i As Integer Set foundCell = ActiveCell lastNum = foundCell.Offset(0, 2).End(xlToRight).Column //Get range object Set nums = Range(Cells(foundCell.Row, 3), Cells(foundCell.Row, lastNum)) Debug.Print nums.Address //Read as array arr = Range(Cells(foundCell.Row, 3), Cells(foundCell.Row, lastNum)).Value For i = 1 To UBound(arr, 2) Debug.Print arr(1, i) Next i End Sub 

我不知道你的代码如何定义你正在search的单元格。 在我的代码中,我使用ActiveCell作为代理。 你将需要适应这个。

我做了两个假设:

  1. 你的数字总是从第3列开始
  2. 你的数量总是连续的,即没有空白的细胞散布在数量内

我也展示了如何获取range对象或array 。 你决定你喜欢哪一个。

如果在Col2和Col3之间插入了列,或者数据结构不同,则只需调整foundCell.Offset(row, column).End(xlToRight).Column

只是增加了Alex P的答案

  1. 你的数量总是连续的,即没有空白的细胞散布在数量内

如果Col3可以包含一些空的地方,像这样:

空值

Cells(4, Columns.Count).End(xlToLeft).Column将更适合于获取Col3的最后一个值(IF和只有IF列3是您的表的最后一列)