繁体   English   中英

使用访问 VBA 在 excel 中查找最后一行/列

[英]Find the last row/column in excel using access VBA

我正在尝试从头到尾运行一个 for 循环,我的 excel 表中的所有数据正在由 access vba 处理。 我努力了:

myWorksheet.Cells(Rows.Count, 4).End(xlUp).row

但它没有用。 我很困惑如何获得一个数字输出,以便它能够成功地在我的循环中运行。 请帮忙。 另外,如果你能分解你的答案的格式,那真的对我有帮助。 谢谢

Access 没有常量xlUp ,它在 Excel 中的值为-4162 在 Access 中, xlUp是具有 Variant 类型和初始值Empty未声明变量。 要在 Access VBA 中使用正确的End(xlUp) ,您可以编写.End(-4162)

myWorksheet.Cells(myWorksheet.Rows.Count, 4).End(-4162).row

试试这个

lastRow = myWorksheet.Range(myWorksheet.Cells(1, 4),myWorksheet.Cells(Rows.Count, 4).End(xlUp).Rows).Count

我通常像这样定义我的LastRow ,“N”只是包含数据的列,您可以根据需要进行调整:

LastRow = ActiveSheet.Cells(Cells.Rows.Count, "N").End(xlUp).Row

我通常将它与Dim row_no As Long配对并像这样在循环中使用它,这里的硬数字是我的数据集的第一行。

For row_no = 5 to LastRow
   'Do the thing
Next

有一种方法可以以相反的顺序遍历循环,这在您删除行时更有意义,因为当您删除它时,它会与宏认为它所在的行混淆。 即:您删除第 2 行,因此第 3 行移动到第 2 行,但宏移动到第 3 行,其中包含第 4 行数据。 对于那些你会像这样接近它的人:

For x = LastRow To 5 Step -1
    'Do the thing
Next x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM