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

Excel VBA-基于列标题查找最后一个非空行,vba,excel,Vba,Excel,我目前正在为我们公司的设备创建一份报告表。此工作表将从多个Excel工作表中获取数据,并根据我们的自定义报告模板进行填充。到目前为止,我已经找到了如何合并多个工作表和查找列标题的方法。但现在我对如何根据列标题查找最后一个非空值感到困惑 上图中附有样本数据。如您所见,每行中最后一个非空单元格是该行的平均值。我试图做的是找到标题列(例如SVC525),并获取该列的最后一个非空值,即平均值。对于给定的示例B列,这应该可以做到这一点 Dim lastrow as Integer, val lastro

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


上图中附有样本数据。如您所见,每行中最后一个非空单元格是该行的平均值。我试图做的是找到标题列(例如SVC525),并获取该列的最后一个非空值,即平均值。

对于给定的示例B列,这应该可以做到这一点

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

在不为空的行(标题)中进行迭代是另一个您可以轻松搜索的故事。

您可能想要这样的故事

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
Dim svVal作为字符串

svVal=“SVC525”last_row=ActiveSheet.Range(“a1048576”).End(xlUp)。row根据您的要求更改单元格引用i@barney,您给出的代码只是返回行号。我想要最后一行的值。对不起,如果我之前没有提到。你应该发布你的代码,这样我们可以定制一个答案。无论如何,这是Excel VBA 101。将x更改为列
单元格(Rows.Count,x)。结束(xlUp)
。你应该看@Jeeva,你有什么反馈吗?