Excel中单元格的属性(用于VBScript)?
Excel中的单元格有哪些属性/属性? 我在网上search,但我能find的最好的东西是这个 。 但是,这不包括像.Font
, .Value
等单元格的列表属性。
我试图find一种方法来获取位于VBScript单元格中的超链接。 单元格的值不同于链接。 我试过Cells(1, 1).Range("A1").Hyperlinks(1).Address
和just Cells(1,1).Hyperlink
,但都没有工作。
另外,在VBScript中有没有关于Excel使用的详细文档? 我已经使用了MSDN和W3Schools文档,但他们都没有任何Excel特定的信息。 我发现在很多地方,Excel在VBA或VB中使用与VBScript不同。
非常感谢!
根据文档 , Cells
是一个Range
对象。 您可以引用特定的单元格(项目)或单元格范围,但单个单元格只是Range
对象的特定实例。
因此,您应该参考范围属性的列表。
关于获取单元格中的超链接。 如果超链接在A1中,则可以使用
Worksheets(1).Cells(1, 1).Hyperlinks(1).Name
这里是关于超链接的其他文档。 文档看起来很稀疏,但如果在左侧菜单中单击“超链接对象”的箭头,则会看到所有的属性和方法。
我想你缺less的一部分是如何访问VBScript中的Excel对象。 在VbScript中访问Excel对象的方法是将以下内容调用到脚本中
Set myxlObject = CreateObject("Excel.Application") Set myxlApplication = myxlObject.Application
有了这些,你几乎可以做任何你在VBA中做的事情,但现在在VBScript中,然后你将需要调用该应用程序对象来访问其他对象。 例如:
Set myWorkBook = myxlApplication.Workbooks.Open( "C:\Wherever\Whatever.xlsx" )
有关可以通过此“Excel.Application”对象访问的属性和方法的更多信息,请参阅此页: 应用程序对象(Excel)
以下脚本会将特定范围的工作表上超链接的名称和地址输出到控制台。
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
运行这个使用cscript
这个脚本可能更实际的用法是将结果输出到文件中:
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