Excel VBA - 基于列标题查找最后一个非空行
问题描述:
我目前正在为我们公司设计一个设备报告表。此工作表将从多个Excel工作表中获取数据,并根据我们的自定义报告模板进行填充。到目前为止,我已经设法找到如何合并多个工作表并找到列标题。但现在我被困在如何根据列标题找到最后一个非空值。Excel VBA - 基于列标题查找最后一个非空行
在上面图片附件是示例数据。如您所见,每行中的最后一个非空单元格是该行的平均值。我想要做的是找到标题列(例如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
+0
@Jeeva,你会提供任何反馈? – user3598756
LAST_ROW = ActiveSheet.Range( “a1048576”)。完(xlUp).Row改变按您的要求 – Barney
喜@barney,代码你给单元格引用只是返回行号。我想要最后一行的值。对不起,如果我以前没有提及。 – Jeeva
你应该发布你的代码,以便我们可以定制一个答案。无论如何,这是Excel VBA 101.将x更改为您的列'Cells(Rows.Count,x).End(xlUp)'。你应该看[EXCEL VBA简介第5部分 - 选择单元格(范围,细胞,Activecell,结束,胶印机)的WiseOwlTutorials (https://www.youtube.com/watch?v=c8reU-H1PKQ&index=5&list=PLNIs- AWhQzckr8Dgmgb3akx_gFMnpxTN5&t = 3116s) – 2016-12-14 04:30:19