我目前正在爲我們公司設計一個設備報告表。此工作表將從多個Excel工作表中獲取數據,並根據我們的自定義報告模板進行填充。到目前爲止,我已經設法找到如何合併多個工作表並找到列標題。但現在我被困在如何根據列標題找到最後一個非空值。Excel VBA - 基於列標題查找最後一個非空行
在上面圖片附件是示例數據。如您所見,每行中的最後一個非空單元格是該行的平均值。我想要做的是找到標題列(例如SVC525)並獲取列的最後一個非空值,這是平均值。
我目前正在爲我們公司設計一個設備報告表。此工作表將從多個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
@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