Excel 查找列中的最后一个常量,然后突出显示基于该常量的数据

Excel 查找列中的最后一个常量,然后突出显示基于该常量的数据,excel,vba,Excel,Vba,我正在尝试找出如何在Excel 2003、2007、2010版中使用VBA执行以下操作(希望所有这些版本都是相同的): 搜索列A中最后一个包含常量值的单元格。 从上面的搜索中选择A2:I2到最后一个常量数据值所在行的所有数据 例如,如果A列中具有常量数据的最后一行是A13,那么我希望选择A2:I2到A13:I13。编辑 现在“lastRow”将在A列中找到最后使用的单元格,即使上面有空格。这假设方程式如您的评论所示位于其他列中。 Sub SelectRange() lastRow = Cel

我正在尝试找出如何在Excel 2003、2007、2010版中使用VBA执行以下操作(希望所有这些版本都是相同的): 搜索列A中最后一个包含常量值的单元格。 从上面的搜索中选择A2:I2到最后一个常量数据值所在行的所有数据

例如,如果A列中具有常量数据的最后一行是A13,那么我希望选择A2:I2到A13:I13。

编辑

现在“lastRow”将在A列中找到最后使用的单元格,即使上面有空格。这假设方程式如您的评论所示位于其他列中。

Sub SelectRange()
  lastRow = Cells(Rows.Count, "A").End(xlUp).Row

  Range("A2:I" & lastRow).Select
End Sub
有关如何在不同版本的excel中查找最后一个单元格,请参见此


假设您必须对A列中的单元格计算公式与常数,您可以使用如下HasFormula方法:

Sub SelectRange()
  lastRow = Cells(Rows.Count, "A").End(xlUp).Row

  Do While Range("A" & lastRow).HasFormula <> False
    lastRow = Cells(lastRow - 1, "A").End(xlUp).Row
  Loop

  Range("A2:I" & lastRow).Select
End Sub
子选择范围()
lastRow=单元格(Rows.Count,“A”).End(xlUp).Row
Do While Range(“A”&lastRow)。HasFormula False
lastRow=单元格(lastRow-1,“A”)。结束(xlUp)。行
环
范围(“A2:I”和最后一行)。选择
端接头

(i)常量数据是什么意思?(ii)您尝试过什么?Excel中的常量是单元格中未计算的数据。例如,我在两列中使用vlookups。如果我使用SpecialCells.xlLastCell,它将返回不正确的行,因为它将vlookup公式视为“数据”。如果使用“查找和选择”,转到“特殊”并选择“常量”,则可以看到这一点。Excel将只选择“真实”数据,而不是以某种方式计算的数据。这似乎不起作用,因为我在E列和F列(vlookups)中有计算字段,Excel将其视为“数据”。我是否可以在a列中查找单元格中的最后一个数据值,然后从a-I列中选择这些行?伪代码是:查找A列中包含任何数据的最后一个单元格;现在从A列的最后一个单元格中选择A2,其中包含数据。现在通过列I选择所有列。例如:如果A中的最后一个数据单元位于A13,则我的代码将选择A2:I2到A13:I13。非常感谢你的帮助!A1和A列最后一个单元格之间是否有空白单元格?如果没有空白,我可以做一个更快的动作。那个人是谁?波特兰跑步者就是那个人!谢谢你的解决方案!