首页 > 解决方案 > 未打开的excel文档中的Vba计数行(来自vba word)

问题描述

我正在尝试使用 word 中的 vba 来计算我在 excel 中的列表具有的行数。问题是我似乎无法在exWb.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row我通过 vba 打开的 USB 驱动器上的 excel 文件上使用函数。

我试图弄清楚我是否打开了错误的 excel 文件,但是我能够使用从单个单元格中获取一个值exWb.Sheets("Sheet1").Cells(1, 1)

我的代码:

    Private Sub B_FillForm_Click()

    Dim objExcel As Object
    Set objExcel = CreateObject("Excel.Application")
    Set exWb = objExcel.Workbooks.Open("D:\DATA.xlsx")
    Dim last_row As Long
    last_row = exWb.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
    MsgBox (last_row)

    exWb.Close

    Set exWb = Nothing


    End Sub

我的excel文件目前填写了A1-A5。

我希望输出是显示 5 的消息框,但实际输出是显示错误消息:

“运行时错误 424,需要对象”

标签: excelvba

解决方案


您需要先声明您的工作簿对象,然后才能设置引用。

 Private Sub B_FillForm_Click()

    Dim objExcel As Object
    Dim exWb As Workbook  'missing from your code
    Set objExcel = CreateObject("Excel.Application")
    Set exWb = objExcel.Workbooks.Open("D:\DATA.xlsx")
    Dim last_row As Long
    last_row = exWb.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
    MsgBox (last_row)

    exWb.Close

    Set exWb = Nothing

End Sub

推荐阅读