我使用数据库结果填充表单。我不知道结果会有多少行。我想有一个可变数量的行,有类似的表:如何检查单元格是否为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