Excel VBA - 根据列标题查找最后一个非空行

3

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

enter image description here

上面的图片中附有示例数据。您可以看到,每行中最后一个非空单元格是该行的平均值。我想要做的就是找到标题列(例如SVC525),并取该列的最后一个非空值,即平均值。

2
最后一行 = ActiveSheet.Range("a1048576").End(xlUp).Row 根据您的要求更改单元格引用 - Barney
嗨@巴尼,你给的代码只返回行号。我想要最后一行的值。如果我之前没有提到,对不起。 - MG78
你应该发布你的代码,这样我们才能为你量身定制答案。不管怎样,这是Excel VBA 101。将x更改为您的列Cells(Rows.Count, x).End (xlUp)。您应该观看WiseOwlTutorials的Excel VBA Introduction Part 5 - Selecting Cells (Range, Cells, Activecell, End, Offset) - user6432984
2个回答

3
对于给定的示例,列B,这应该解决问题。
Dim lastrow as Integer, val
lastrow = Range("B" & Rows.Count).End(xlUp).Row
val = range("B" & lastrow + 2).Value

遍历不为空的行(标题)是另一回事,您可以轻松搜索了解。


1
你可能想要类似这样的东西。
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

@Jeeva,你能给一些反馈吗? - user3598756

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接