Excel VBA – 基于列标题查找最后一个非空行

我目前正在为我们公司devise一个设备报告表。 此工作表将从多个Excel工作表中获取数据,并根据我们的自定义报告模板进行填充。 到目前为止,我已经设法find如何合并多个工作表并find列标题。 但现在我被困在如何根据列标题find最后一个非空值。

在这里输入图像说明

上图中附有样本数据。 正如你所看到的,每行的最后一个非空单元是行的平均值。 我想要做的是find标题列(如SVC525),并采取列的最后一个非空值,这是平均值。

你可能会在这样的事情之后

 Dim svVal As String svVal = "SVC525" '<--| set your header value to be searched for in row 1 With Worksheets("averages") '<--| change "Averages" tou your actual sheet name MsgBox .Cells(.Rows.count, .Range("A1", .Cells(1, .Columns.count).End(xlToLeft)).Find(what:=svVal, LookIn:=xlValues, lookat:=xlWhole).column).End(xlUp) End With 

对于B列给出的例子,这应该是诀窍

 Dim lastrow as Integer, val lastrow = Range("B" & Rows.Count).End(xlUp).Row val = range("B" & lastrow + 2).Value 

遍历不是空的行(标题)是另一个可以轻松search的故事。