VBA, 列里最后一个单元格所在行
时间: 2024-01-20 10:03:47 浏览: 141
你可以使用以下VBA代码来获取某一列中最后一个单元格所在的行号:
```
Dim lastRow as Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
```
上述代码中的"A"表示你要获取的列。你可以将其替换为你需要的列字母。这段代码使用`xlUp`参数从下往上查找最后一个非空单元格。`Rows.Count`返回指定工作表的总行数。`End(xlUp)`将光标移到指定范围的最后一个单元格。最后,`.Row`返回该单元格的行号。
相关问题
vba, 对列里含有"小计"的单元格所在行的数据进行汇总, 放在最后一行
你可以使用 VBA 循环遍历每一行,判断当前单元格是否包含 "小计",如果包含,则将该行数据进行累加,最后将汇总结果放在最后一行。
以下是一个示例代码:
```vb
Sub SummarizeSubtotals()
Dim lastRow As Long
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row ' 获取数据最后一行的行号
Dim subtotalRow As Long
Dim subtotalRange As Range
For subtotalRow = 1 To lastRow ' 遍历每一行
If InStr(1, ActiveSheet.Cells(subtotalRow, 1).Value, "小计") > 0 Then ' 判断是否包含 "小计"
If subtotalRange Is Nothing Then ' 初始化汇总范围
Set subtotalRange = ActiveSheet.Range("A" & subtotalRow & ":" & ActiveSheet.Cells(subtotalRow, Columns.Count).End(xlToLeft).Address)
Else ' 扩展汇总范围
Set subtotalRange = Union(subtotalRange, ActiveSheet.Range("A" & subtotalRow & ":" & ActiveSheet.Cells(subtotalRow, Columns.Count).End(xlToLeft).Address))
End If
End If
Next subtotalRow
If Not subtotalRange Is Nothing Then ' 如果存在汇总范围
Dim summaryRow As Long
summaryRow = lastRow + 1 ' 汇总结果放在数据最后一行的下一行
subtotalRange.Copy Destination:=ActiveSheet.Range("A" & summaryRow) ' 将汇总结果复制到最后一行
subtotalRange.ClearContents ' 清空汇总范围的数据
End If
End Sub
```
你可以将上述代码复制到 VBA 编辑器中,然后在 Excel 中执行该宏,即可实现对包含 "小计" 的行数据进行汇总并放在最后一行。
vba, 对列里含有"小计"的单元格所在行的数据进行求和, 把求和结果放在最后一行
你可以使用VBA中的循环来遍历列中的每个单元格,如果单元格中包含"小计"这个字符串,就可以将该单元格所在行的数据进行求和,并将结果放在最后一行。
以下是一个示例代码:
```
Sub SumSubtotal()
Dim lastRow As Long
Dim totalRow As Long
Dim i As Long
Dim sum As Double
lastRow = Cells(Rows.Count, "A").End(xlUp).Row '获取最后一行
totalRow = lastRow + 1 '最后一行的下一行就是总计行
sum = 0 '初始化求和变量
For i = 1 To lastRow '遍历每一行
If InStr(1, Cells(i, "A").Value, "小计") > 0 Then '如果单元格中包含"小计"字符串
sum = sum + Cells(i, "B").Value '将该行数据进行求和
End If
Next i
Cells(totalRow, "B").Value = sum '将求和结果放在总计行的B列
End Sub
```
这个代码假设你的数据在第一列和第二列,"小计"字符串在第一列,求和结果放在第二列的最后一行。你可以根据实际情况进行修改。
阅读全文