VBscript to read excel - 1.如何获取特定列的行数,2 - 获取特定行的列数

VBscript to read excel - 1. How to get the row count of specific column ,2 - to get the column count of specific row

要读取的 VBscript excel:

Path="C:\temp\sample.xlsx"

Set objexl  = Createobject("Excel.application")

objexl.visible = False

set objwkb = objexl.workbooks.open(path)

set objsht = objwkb.sheets(1)

msgbox objsht.usedrange.rows.count  

msgbox objsht.usedrange.columns.count

在上面的代码中,我使用 usedrange.rows.count(将显示整个 sheet 中最后使用的行)和 usedrange.columns.count(将显示最后使用的列整个sheet).

但需要代码才能找到

  1. 特定列的行数。

  2. 特定行的列数。

回答前请考虑:

  1. 我不需要通过数据库连接到 excel 来获取计数的代码。

  2. 我不需要使用循环获取计数的代码。

  3. 我正在使用外部 vbscript,所以不需要 sheets(1).cells(row,col).end(xlup).row

如果有任何其他方法可以找到它,请告诉我。

解决方案:

Const xltoleft = -4159  
Const xlup = -4162 
Lst_row = Sheets(1).cells(row, col).End(xlup).row
Lst_col = Sheets(1).Cells(row, col).End(xlToLeft).Column

如果您使用外部 vbscript,则需要声明 xltoleftxlup 的常量值。

常量值可以在 excel vba window 中通过简单地 Msgbox xlupMsgbox xltoleft.

找到

尽管此查询的回复较晚,但我发现此答案可能有用。

Path="C:\temp\sample.xlsx"
Set objexl  = Createobject("Excel.application")
objexl.visible = False
set objwkb = objexl.workbooks.open(path)
set objsht = objwkb.sheets(1)

lngNoOfCols = objsht.Range("XFD4").End(-4159).column
lngNoOfRows = objsht.Range("A65536").End(-4162).Row

没有。 Of columns(lngNoOfCols)-XFD4(这里4是你最大数据的行数)

因为我对第一个提案有一些问题,所以我把我使用的代码放上去了。 非常相似,但使用的是上下左右而不是上下左右。

row = 1
col = 1
Const xlDown = -4121
Const xlToRight = -4161
Lst_row = Sheets(1).cells(row, col).End(xlDown).row
Lst_col = Sheets(1).Cells(row, col).End(xlToRight).Column