使用VBScript在Excel中查找列的底部

使用VBScript在Excel中查找列的底部,vbscript,Vbscript,我正在编写一个脚本,它将在Excel电子表格中提取列的内容。因为我不知道有多少行将有数据,所以我需要能够在脚本过程中找到列的结尾 在VBA中,我将使用以下内容 sht.Range(sht.Cells(row, col), sht.Cells(row, col)).End(xlDown).row 当我尝试在VBScript文件中使用该行时(我知道它可能不起作用,但我希望有好运),返回一条消息说“xlDown”未定义。我可以很容易地创建一个Excel宏来实现这一点,但我希望程序运行时不必更改原始的

我正在编写一个脚本,它将在Excel电子表格中提取列的内容。因为我不知道有多少行将有数据,所以我需要能够在脚本过程中找到列的结尾

在VBA中,我将使用以下内容

sht.Range(sht.Cells(row, col), sht.Cells(row, col)).End(xlDown).row
当我尝试在VBScript文件中使用该行时(我知道它可能不起作用,但我希望有好运),返回一条消息说“xlDown”未定义。我可以很容易地创建一个Excel宏来实现这一点,但我希望程序运行时不必更改原始的电子表格

这是我当前脚本中定义Excel对象的部分

Set fso = CreateObject("Scripting.FileSystemObject")
set xlapp = CreateObject("Excel.Application")
Set wkbk = xlapp.Workbooks.Open(path)
'xlapp.Visible = False
Set sht = wkbk.Sheets(sheetname)
Set myfile = fso.OpenTextFile(txtfile, 2, True)
lrow = sht.Range(sht.Cells(row, col), sht.Cells(row, col)).End(xlDown).row

path、sheetname和txtfile是以前定义的字符串,row和col是以前定义的整数。

xlDown
实际上是一个常量。如前所述,它的值是-4121。 所以试着做些类似的事情

const xlDown = -4121
lrow  = sht.Range(sht.Cells(row, col), sht.Cells(row, col)).End(xlDown).row
或者您也可以在以下代码中使用
xlUp
来获取列的行数,例如列a:

const xlUp = -4162
lrow = sht.Range("A" & sht.Rows.Count).End(xlUp).Row

很高兴它成功了。下面是一个简单的示例,它将为您提供图纸sht使用范围内的行数


美丽的。非常感谢你。
lrow = sht.UsedRange.Rows.Count