【问题标题】:VBscript to read excel - 1. How to get the row count of specific column ,2 - to get the column count of specific rowVBscript读取excel - 1.如何获取特定列的行数,2 - 获取特定行的列数
【发布时间】:2015-03-12 18:34:26
【问题描述】:

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. 特定行的列数。

在回答之前请考虑:

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

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

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

如果有其他方法可以找到这个,请告诉我。

【问题讨论】:

  • 看来你已经排除了获得计数的所有可能性:D

标签: excel vbscript


【解决方案1】:

解决方案:

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 的此 const 值。

可以通过Msgbox xlupMsgbox xltoleft 在 excel vba 窗口中找到常量值。

【讨论】:

  • 别忘了定义rowcol
【解决方案2】:

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

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是你最大数据的行数)

【讨论】:

    【解决方案3】:

    由于我对第一个提案有一些问题,所以我把我使用的代码放在了上面。 非常相似,但使用的是向下和向右而不是向上和向左。

    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
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 2020-01-12
    • 1970-01-01
    相关资源
    最近更新 更多