创建表时VBA语法错误



尝试创建简单表时我会遇到语法错误,而我不知道为什么。当我在它之后编写.name时,它起作用,并且仅编写ws.ListObjects.Add时也可以工作。那么有人可以解释什么是正确的语法?谢谢。

Sub CreateTable()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim rng As Range
    Set wb = Workbooks("?????")
    Set ws = wb.Worksheets("owssvr-úpravené")
    Set rng = ws.Range("A1").CurrentRegion
    rng.Find(What:="Next_Review_Date", LookAt:=xlWhole).Name = "Next_Review_Date"
    With ws.Range("Next_Review_Date").Offset(0, 1)
         .EntireColumn.Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
         .EntireColumn.Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
         .EntireColumn.Insert shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    End With
    With ws.Range("Next_Review_Date")
        .Offset(0, 1).Value = "Rozdiel dátumov"
        .Offset(0, 2).Value = "Overdue"
        .Offset(0, 3).Value = "Review year"
    End With
    ws.ListObjects.Add(xlSrcRange, rng, , xlYes)
End Sub

您需要从

中删除括号
ws.ListObjects.Add(xlSrcRange, rng, , xlYes)

为什么?
如果您调用过程/函数而不将某些内容返回变量,则使用no括号

ws.ListObjects.Add xlSrcRange, rng, , xlYes

如果您返回某物使用括号

MyVariable = ws.ListObjects.Add(xlSrcRange, rng, , xlYes)

这也适用于所有其他功能/过程。

最新更新