我使用數據庫結果填充表單。我不知道結果會有多少行。我想有一個可變數量的行,有類似的表:如何檢查單元格是否爲Excel列中的最後一個
IF(this is the last row?, sum of previous cells, some value)
是否有確定該行是最後一個公式的公式?我正在尋找一個Excel公式而不是VBA代碼。也許類似於我不知道的LOOKUP或INDEX或OFFSET。
我使用數據庫結果填充表單。我不知道結果會有多少行。我想有一個可變數量的行,有類似的表:如何檢查單元格是否爲Excel列中的最後一個
IF(this is the last row?, sum of previous cells, some value)
是否有確定該行是最後一個公式的公式?我正在尋找一個Excel公式而不是VBA代碼。也許類似於我不知道的LOOKUP或INDEX或OFFSET。
如果你想要在單元格中輸入公式,請選擇Ctrl + Down(根據需要重複並不是所有單元格都填充),Down應該可以工作,但是解決方法是將總計在其他地方,如=Sum(A:A)
。或者,如果在最近的Excel版本中,並且對整個列進行求和,則公式將處於避免循環引用的狀態,如=SUM(A2:A1048576)
。
你可以試試這個UDF:
Function IsLastCellInRow(myCell As Range) As Boolean
If IsEmpty(myCell) Then Exit Function
If myCell.End(xlDown).Row = myCell.EntireColumn.Rows.Count Then
IsLastCellInRow = True
End If
End Function
功能基本檢查是否存在給定的細胞低於非空單元格,並返回TRUE的FALSE。
然後,您可以使用此UDF這樣的:
=IF(IsLastCellInRow(Sheet1!A1),SUM(Sheet1!A:A), "Whatever")
這將測試是否細胞是空的,一旦它發現這是不言而喻的空單元格,總結以前的單元格的值,並將其顯示在空單元格
Sub Test2()
Dim i As Integer
Dim j As Integer
i = 1
Do While Cells(i, 1).Value <> ""
j = j + Cells(i, 1).Value
i = i + 1
Loop
Cells(i, 1).Select
Cells(i, 1).Value = j
End Sub
該子項通過在底部添加總和來合計列。
Sub ColumnAutoTotal()
'
Dim iStartRow As Integer
Dim iEndRow As Integer
Range("A2").Select ' This cell is the first cell in the column that you want to add. The TOP Cell
iStartRow = ActiveCell.Row
Selection.End(xlDown).Select
iEndRow = ActiveCell.Row
Cells(iEndRow + 1, ActiveCell.Column).Select
'Set the total formula
ActiveCell.FormulaR1C1 = "=SUM(R[-" & ActiveCell.Row - iStartRow & "]C:R[-1]C)"
End Sub
你可以把它寫成函數並傳遞單元格「A2」或其他單元格。這使用內置的「Selection.End」並避免了循環的需要。
提供了一個示例請和預期結果 – AHC
在第一張(S1)我有A1-An填充值。在第二張紙(S2)中,我有B1-Bn填充值。在第三張表中,我希望列A有: IF(n?,SUM(A1:An),'S1'!Ax *'S2'!Bx)。我需要Excel公式來確定某個單元格是否是該列中的最後一個單元格,以便我可以決定使用哪個公式。 – Anya
你的例子不完整 – AHC