创建表时出现VBA语法错误

时间:2018-02-15 07:40:52

标签: excel-vba vba excel

我在尝试创建简单表格时遇到语法错误而且我不知道原因。当我在它之后写.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

1 个答案:

答案 0 :(得分:2)

您需要从

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

<强>为什么吗
如果您调用过程/函数而未将某些内容返回到变量中,则不使用括号

ws.ListObjects.Add xlSrcRange, rng, , xlYes

如果您返回使用括号

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

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