2012-10-10 23 views
1

我有一個粗略的時間獲得這個VBscript的符合Excel對象的工作:Selection.End(xlToRight)不工作

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

更重要的是,我會用使用並改寫整個事情像這樣?這是非常罕見的需要它 – brettdj

回答

4

這是因爲你是從Excel以外運行它。使用objExcel.Selection而不是Selection。以便您的代碼知道選擇與Excel應用程序關聯。此外,您需要定義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 
+1

不要忘記定義xlToRight。 –

+0

感謝您的及時回覆,它的工作! – workspace

+0

@ Ekkehard.Horner:當然,非常感謝! – workspace