我一直试图仅使用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
+向下,向上,向左,向右。如果您知道实现此目标的任何其他方法,则可以。
答案 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
。
现在可以正常工作了。