带有VBScript的TableStyle

时间:2017-01-06 23:11:05

标签: excel vbscript

有没有办法用VBScript设置表格?我在网上找到的所有解决方案都适用于VBA。

例如,我使用以下代码

尝试了此处Excel Macro - Select all cells with data and format as table的解决方案
Set objExcel = CreateObject("Excel.Application")
Dim tbl
Set tbl = objWorkbook.ListObjects.Add(xlSrcRange, objWorkbook.Sheets("101").Range("$A$1:$C$26"), , xlYes)
tbl.TableStyle = "TableStyleLight1"

但我收到此错误

Microsoft VBScript runtime error: Object doesn't support this property or method: 'objWorkbook.ListObjects'

(如果你在exceljs中有一个更好的解决方案,那就更好了)

1 个答案:

答案 0 :(得分:0)

我发现了一些你可以使用的东西。它来自Using Styles to Dress Up Your Worksheets in Excel 2007。我所做的是将它从VBA转换为VBScript,这真的不是那么难。

Sub ListStyles()
    Dim objStyle
    Dim objCellRange
    Dim lngCount
    Dim objSheet
    Set objSheet = ThisWorkbook.Worksheets("Config - Styles")
    With objSheet
        lngCount = objSheet.UsedRange.Rows.Count + 1
        For Each objStyle In ThisWorkbook.Styles
            On Error Resume Next
            Set objCellRange = Nothing
            Set objCellRange = Intersect(objSheet.UsedRange, objSheet.Range("A:A")).Find(objStyle.Name, _
            objSheet.Range("A1"), xlValues, xlWhole, , , False)
            If objCellRange Is Nothing Then
                lngCount = lngCount + 1
                .Cells(lngCount, 1).Style = objStyle.Name
                .Cells(lngCount, 1).Value = objStyle.NameLocal
                .Cells(lngCount, 2).Style = objStyle.Name
            End If
        Next
    End With
End Sub

要进行此设置,请双击Sheet1选项卡并将其重命名为" Config - Styles"。添加上面的代码,然后运行脚本。你最终得到的是:

enter image description here