在VBScript中选择带有数据的Excel单元格

时间:2018-11-27 18:02:13

标签: excel vba excel-vba vbscript

我一直试图仅使用VBScript代码来操作Excel文件。它是一个独立的VBScript,用于打开和关闭excel文件。 Range(Selection, Selection.End(xlDown)).Select代码有问题。当我在excel宏中运行此代码时,它将选择特定单元格中具有连续数据的所有行。如我所愿。问题是当我尝试从VBScript运行此代码时。文件类型为.vbs

我已经在脚本内创建了Excel对象Set objExcel = CreateObject("Excel.Application")。并且代码objExcel.Range("A5").select正在选择正确的单元格。但是objExcel.Range(Selection, Selection.End(xlDown)).Select什么也没做。当您按住shift + ctrl并按excel中的向下箭头时,它具有相同的功能。当我在excel中记录宏并运行它时,也没有问题,同一代码通常在VBA中运行。行被选中。唯一的问题是,当我将该代码转换为独立的VBScript时,什么都没发生。

我需要一种选择包含数据的连续单元格的方法。类似于ctrl+shift +向下,向上,向左,向右。如果您知道实现此目标的任何其他方法,则可以。

2 个答案:

答案 0 :(得分:1)

VBScript不了解VBA设置使用的常量,例如xlDown

您需要参考xlDown的实际值,您可以从MS Docs site那里获得

在您提到的这种特定情况下,常数值为-4121,因此您在vbscript中的命令将是:

objExcel.Range(Selection, Selection.End(-4121)).Select i

但是,由于性能下降,您应该始终避免在VBA / VBScript中使用“选择”,请查看here了解更多信息

答案 1 :(得分:0)

使用测试脚本时我发现了。

问题出在xlDirection。当我开始使用文档中的数字时,代码开始工作。还有一个问题是Selection中的objExcel.Range(Selection, Selection.End(-4121)).Select关键字。它返回了Object required:'Selection'。我将objExel.添加到了Selection的两个实例中:

objExcel.Range(objExcel.Selection, objExcel.Selection.End(-4121)).Select

现在可以正常工作了。