vba - 在 VBA 中使用循环计算行数?
问题描述
我知道如何使用以下语法计算行数(并以消息表单的形式显示结果):
Sub CountRows1()
Dim last_row As Long
last_row = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox (last_row)
End Sub
我想知道是否有另一种方法可以在不声明变量的情况下执行此操作,而是选择一个范围,然后使用偏移量。
我正在考虑以下内容,但不知道从哪里开始:
Sub UseLoop ()
Range ("A1").Select
Do Until Active.Cell.Value = ""
-- Something to do the counting, can't seem to get this part right
ActiveCell.Offset (1,0).Select
Loop
End Sub
解决方案
嗨,这样的计数行太危险了。(xl下)
因为如果你有 a5 空的 eample 。但是a1到a4是满的,a6是满的。您的结果将是 a6(发现 a5 为空,并且一行偏移量等于 a6,这是错误的)..
更好的方法是下到 Excell 的最后一行(第 1048572 行),然后使用 xlUp 这有点好,但它有边缘情况太悬停可能会更少!并且它没有找到(考虑)中间的空行。
cells(rows.count,1).xlUp.offset(1,0)
最好的方法:需要声明 VARIABLE !!!
declare a var by initial values of 1
dim i as integer
i=1
do
i=i+1
while (cells(x,1).value !=null )
现在我就是你想要的。!
推荐阅读
- c# - 如何使用自定义类作为实体的属性并通过 Entity Framework Core 进行转换?
- javascript - JAVASCRIPT - 将值附加到一组选择选项中的一个选择选项
- node.js - 致命错误:接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足
- tensorflow - 在 seq2seq 模型实施中需要建议
- python - 使用 tensorflow 的 indicator_column 功能对以空格分隔的分类变量进行多热编码
- node.js - 无法从 WebStorm 调试远程 docker node.js 应用程序
- python - pytest 中的 TestClass 应该具有什么结构?
- swift - 从 github 下载的项目未在 xcode 10 中运行
- javascript - Typescript Vue 中的 Vuex 状态对象检测
- c# - 使用 EntityFramework for ODP.NET,为什么 Oracle 12c 上会挂起以下原始 SQL 命令?