尝试select范围时出现语法错误

下面的代码一直给我语法错误,只要我跑到这一行: Range(“SheetList[Worksheet Index]”).Select

 Private Sub Worksheet_Activate() Dim sheet As Object Dim SheetName As String On Error GoTo Error With Sheets("Index").ListObjects("SheetList") If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete End If End With Range("SheetList[Worksheet Index]").Select '<--------- syntax error For Each sheet In Sheets SheetName = sheet.Name ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _ SubAddress:=SheetName & "!A1", _ TextToDisplay:=SheetName ActiveCell.Offset(1, 0).Select Next sheet Exit Sub Error: MsgBox "Unable to create index" End Sub 

我已经创build了SheetList表和Index表。

任何人都可以帮我解决这个问题吗?

范围期望范围(列字母行号)
EX:范围(“A1”)

要么

范围(列信件行号:列信件行号)
EX:范围(“A1:B22”)

还有其他一些使用Range的方法。 看这里。 https://msdn.microsoft.com/en-us/library/office/ff838238.aspx

什么是SheetList [工作表索引],我们如何select它。 我不确定select它存在的范围将做到这一点。 为什么你要通过select这个对象来做?

您正在尝试select刚刚删除的内容。 Range("SheetList[Worksheet Index]")引用SheetList结构化表的.DataBodyRange中的Worksheet Index标题下的列。 您先前用.DataBodyRange.Delete其与所有其他数据一起删除了几行。 你的意思是简单的.ClearContents

如果您要开始放置新logging,则至less需要Range("SheetList").DataBodyRange

 With Sheets("Index").ListObjects("SheetList") If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete End If .ListRows.Add 'leave at least one row to select below End With Range("SheetList[Worksheet Index]").Select '<~~now it selects the empty row we created 

如果将.ListRows.Add移动到For Each … Next语句中作为每个新条目的前言,则不必依赖.SelectActiveCell来实现您的目标。