2013-06-13 32 views
0

是否可以在工作簿中切換WSH VBScript中的工作表(由名稱引用),如果是,我該怎麼做?WSH VBScript在已打開的Excel中切換workSHEET WORKBOOK

這將用於已打開Excel文件的腳本中。我想訪問一個名爲「版本控制」的工作表。

以下是我如何正在打開工作簿:

xlsFile = path & "\xml-sitemap.xls" 
Set objExcel = WScript.CreateObject("Excel.Application") 
objExcel.Workbooks.open(xlsFile) 

回答

1

這將做到這一點(修訂如下Ekkehard.Horner的評論)

Dim ws 
Dim wb 

xlsFile = path & "\xml-sitemap.xls" 
Set objExcel = WScript.CreateObject("Excel.Application") 
objExcel.Workbooks.open(xlsFile) 
Set wb = objExcel.ActiveWorkbook 'the ActiveWorkbook will refer to the opened workbook 
Set ws = wb.Worksheets("Version Control") 'ws is a Worksheet object 
+0

不,它不會'做',但會拋出一個「Object required:'ActiveWorkbook''error - -1。 –

+0

@ Ekkehard.Horner,現在修復它。 – Bathsheba

+0

我撤銷了downvote,但是:爲什麼不使用「Option Explicit」和Dim * all *您的變量?爲什麼使用.Open作爲Sub(帶有僞參數列表())而不是函數? –

1

當從VBScript自動化Excel,全球對象提供由Excel到VBA代碼丟失。所以腳本最小的「連張的工作」應該是這樣的:

Option Explicit 

Dim sFSpec : sFSpec  = "P:\athto\your.xls" 
Dim oExcel : Set oExcel = CreateObject("Excel.Application") 
Dim oWB : Set oWB = oExcel.Workbooks.Open(sFSpec) 
Dim oWS, sWSName 

Set oWS = oWB.Worksheets(1) 
sWSName = oWS.Name 
WScript.Echo 0, sWSName 

Set oWS = oWB.Worksheets(2) 
WScript.Echo 1, oWS.Name 

Set oWS = oWB.Worksheets(sWSName) 
WScript.Echo 2, oWS.Name 

oExcel.Quit 
0

使用VBScript,你可以用「名稱」擴展返回一個Excel電子表格的選項卡的名稱。

Dim excelPath, objExcel, oData, Excel_tab 

excelPath = "C:\Users\user.name\Desktop\file.xls" 
Set objExcel = CreateObject("Excel.Application") 
Set oData = objExcel.Workbooks.Open(excelPath) 
Excel_tab = objExcel.ActiveWorkbook.Worksheets(1).name 
msgbox(Excel_tab) 

objExcel.quit 
相關問題