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

时间:2015-03-12 18:34:27

标签: excel vbscript

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(将显示整个工作表中最后使用的行)和usedrange.columns.count(将显示整个工作表中最后使用的列)

但需要代码才能找到

  1. 特定列的行数。

  2. 特定行的列数。

  3. 在回答之前,请考虑:

    1. 我不需要代码来通过DB连接到Excel来获取计数。

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

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

    4. 如果还有其他方法可以找到,请告诉我。

2 个答案:

答案 0 :(得分:2)

解决方案:

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的常量值。

只需Msgbox xlupMsgbox xltoleft即可在excel vba窗口中找到Const值。

答案 1 :(得分:0)

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

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

不。列(lngNoOfCols)-XFD4(这里4是最大数据的行数)

相关问题