Vba 创建工作簿中所有工作表名称的列表
我有一段代码,它在工作簿中创建一个新工作表,并在一列中列出所有工作表名称,这很好,但我希望它在每个工作表名称之间保留27个空行Vba 创建工作簿中所有工作表名称的列表,vba,excel,Vba,Excel,我有一段代码,它在工作簿中创建一个新工作表,并在一列中列出所有工作表名称,这很好,但我希望它在每个工作表名称之间保留27个空行 Dim xWs As Worksheet On Error Resume Next Application.DisplayAlerts = False xTitleId = "All Sheet Names" Application.Sheets(xTitleId).Delete Application.Sheets.Add.index Set xWs =
Dim xWs As Worksheet
On Error Resume Next
Application.DisplayAlerts = False
xTitleId = "All Sheet Names"
Application.Sheets(xTitleId).Delete
Application.Sheets.Add.index
Set xWs = Application.ActiveSheet
xWs.Name = xTitleId
For i = 2 To Application.Sheets.Count
xWs.Range("A" & (i - 1)) = Application.Sheets(i).Name
Next
例如,现在它是如何列出它们的
这就是我希望它列出它们的方式,每个表名之间有空格
OP表示它们之间有27行空白,因此下一行将向下28行
尝试执行
xWs.Range(“A”和(i-1)).Offset(27,0)=Application.Sheets(i).Name
它只是将列表下移到第27行:(xWs.Range(“A”和(i-2)*27)+1)
ScottCraner写的东西。另外,下一次出错时的将在以后继续
会咬你的屁股。不要这样做,在尝试删除不存在的工作表时,使用其他方法避免出错。@ScottCranercode xWs.Range(“a”&((i-2)*27)+1)=Application.Sheets(i)。Name
这有效。
For i = 2 To Application.Sheets.Count
xWs.Range("A" & ((i - 1) * 28) - 27) = Application.Sheets(i).Name
Next