Selection.End(xlToRight)不起作用

时间:2012-10-10 17:55:34

标签: excel vbscript

我很难让这个VBscript行与excel对象一起使用:

set fso=CreateObject("Scripting.FileSystemObject") 
Set WShell = CreateObject("WScript.Shell") 
Set objExcel = createobject("Excel.application") 

objexcel.Visible = true 
objexcel.Application.ScreenUpdating = True 

objexcel.Workbooks.Open dir & masterFileName 
objexcel.Activeworkbook.Worksheets("xActive_User_Ratio").Activate 
objexcel.Range("A1").Select 
objexcel.Range(Selection, Selection.End(xlToRight)).Select 

当我运行此代码时出现错误:

Object required: 'Selection' 

我做错了什么?任何一个例子都会非常有用。

请帮助

1 个答案:

答案 0 :(得分:4)

这是因为您是从Excel外部运行它。

使用objExcel.Selection代替Selection。这样您的代码就知道Selection与Excel Application相关联。此外,您需要定义xlToRight或用它的数值替换它。

更好的是,我会使用并重写整个事情:

Set fso = CreateObject("Scripting.FileSystemObject")
Set WShell = CreateObject("WScript.Shell")
Set objexcel = CreateObject("Excel.application")
xlToRight = -4161 ' -4161 is the value of xlToRight
With objexcel
    .Visible = True
    .Application.ScreenUpdating = True
    'using variables for workbook and worksheet to be explicit
    Set wb = .Workbooks.Open(Dir & masterFileName)
    Set ws = wb.Worksheets("xActive_User_Ratio")
    ws.Activate
    ws.Range("A1").Select
    ws.Range(.Selection, .Selection.End(xlToRight)).Select        
End With