2014-06-04 71 views
1

單元格在Excel中有哪些屬性/屬性?我在網上搜索,但我能找到的最好的東西是this。但是,這不包括像.Font.Value等單元格的列表屬性。Excel中單元格的屬性(用於VBScript)?

我試圖找到一種方法來獲取位於單元格中的超鏈接在VBScript中。單元格的值與鏈接不同。我試過Cells(1, 1).Range("A1").Hyperlinks(1).AddressCells(1,1).Hyperlink,但都沒有工作。

此外,是否有任何Excel的VBScript中使用的詳細文件?我已經使用MSDN和W3Schools文檔,但他們都沒有任何Excel特定的信息。我發現在很多地方,Excel在VBA或VB中的使用與VBScript中的不同。

非常感謝!

+0

我怕我不知道的特定於VBScript的文檔(我只使用Excel中的VBA)。但是,如果我的帖子回答了您的問題或有用,請隨時接受它或給它一個upvote! :) – Zairja

+0

我已添加有關您的超鏈接問題的其他信息。 – Zairja

回答

2

根據documentation,Cells是一個Range對象。您可以引用特定的單元格(項目)或單元格範圍,但單個單元格只是對象的特定實例。

因此,您應該參考Range properties的列表。

關於獲取單元格中的超鏈接。如果超鏈接在A1中,則可以使用

Worksheets(1).Cells(1, 1).Hyperlinks(1).Name 

以下是有關Hyperlinks的其他文檔。文檔看起來很稀疏,但如果在左側菜單中單擊「超鏈接對象」的箭頭,則會看到所有屬性和方法。

+0

謝謝!我沒有看到,但這工作完美。感謝您也包括所有相關文檔的鏈接。 –

1

我想你缺少的一部分是如何訪問VBScript中的Excel對象。您訪問Excel對象在VBScript中的方法是撥打以下到腳本

Set myxlObject = CreateObject("Excel.Application") 
Set myxlApplication = myxlObject.Application 

有了,你將能夠做幾乎任何東西,你已經在VBA VBScript中完成,但現在,然後你會需要調用該應用程序對象來訪問其他對象。例如:

Set myWorkBook = myxlApplication.Workbooks.Open("C:\Wherever\Whatever.xlsx") 

有關,你可以通過這個「Excel.Application」對象訪問看到這個頁面的屬性和方法的詳細信息:Application Object (Excel)

下面的腳本將輸出的名稱和鏈接地址的在特定範圍的工作表上添加到控制檯。這種使用cscript

可能更實際使用該腳本的

Set fso = CreateObject("Scripting.FileSystemObject") 
curDir = fso.GetAbsolutePathName(".") 

Set myxlObject = CreateObject("Excel.Application") 
Set myxlApplication = myxlObject.Application 
Set myWorkBook = myxlApplication.Workbooks.Open(curDir & "\24048353.xlsx") 'Change to the actual workbook that has the Hyperlinks 
Set myWorkSheet = myWorkBook.Worksheets(1) 

myxlApplication.Visible = False 

Set rng = myWorkSheet.Range("A2:A3") 'Change to the actual range that has the Hyperlinks 

For Each row In rng.Rows 

    myLinkName = row.Cells(1, 1).Hyperlinks(1).Name 
    myLinkURL = row.Cells(1, 1).Hyperlinks(1).Address 

    wscript.echo myLinkName & " " & myLinkURL 

Next 

運行是將結果輸出到文件中這樣:

Set fso = CreateObject("Scripting.FileSystemObject") 
curDir = fso.GetAbsolutePathName(".") 

Set myLinksFile = fso.OpenTextFile(curDir & "\mylinks.txt", 8, True) 

Set myxlObject = CreateObject("Excel.Application") 
Set myxlApplication = myxlObject.Application 
Set myWorkBook = myxlApplication.Workbooks.Open(curDir & "\24048353.xlsx") 'Change to the actual workbook that has the Hyperlinks 
Set myWorkSheet = myWorkBook.Worksheets(1) 

myxlApplication.Visible = False 

Set rng = myWorkSheet.Range("A2:A3") 'Change to the actual range that has the Hyperlinks 

For Each row In rng.Rows 

    myLinkName = row.Cells(1, 1).Hyperlinks(1).Name 
    myLinkURL = row.Cells(1, 1).Hyperlinks(1).Address 

    mylinksFile.WriteLine myLinkName & ", " & myLinkURL 

Next 

mylinksFile.Close 
相關問題