我有一个宏,它打印工作簿中所有工作表的名称:
Sub GetSheetNames()
Dim i%
For i = 1 To Sheets.Count
Cells(i, 1).Value = Sheets(i).Name
Next i
End Sub
每当我运行宏时,它会在我选择的任何单元格中打印名称。我想让它在自己单独的表格中打印出来。我怎么能这样做?
答案 0 :(得分:0)
您需要确定输出所需的位置。非限定参考默认为您当前的工作表。例如,这将从Sheet1开始输出第1行和第1列:
Sub GetSheetNames()
Dim i%
For i = 1 To Sheets.Count
Sheet2.Cells(i, 1).Value = Sheets(i).Name
Next i
End Sub
查看Cells(i,1).Value现在如何在前面有一个工作表参考?根据您要启动的位置,您可能需要添加行计数器。使用工作表名称引用和单元格引用的循环迭代器可能不是您最终想要的。
让工作表从另一行(在本例中为第10行)开始的示例如下所示:
Sub GetSheetNames()
Dim i%
Dim rowCounter As Long
rowCounter = 10
For i = 1 To Sheets.Count
Sheet2.Cells(rowCounter, 1).Value = Sheets(i).Name
rowCounter = rowCounter + 1
Next i
End Sub
限定工作表名称的另一种方法:
Sub GetSheetNames()
Dim i%
Dim rowCounter As Long
rowCounter = 10
For i = 1 To Sheets.Count
Sheets("YourSheetNameHere").Cells(rowCounter, 1).Value = Sheets(i).Name
rowCounter = rowCounter + 1
Next i
End Sub
答案 1 :(得分:0)
试试这个:
Sub GetSheetNames()
Dim i%
For i = 1 To Sheets.Count
Sheets("Lists").Cells(i, 1).Value = Sheets(i).Name
Next i
Sheets("Lists").Activate 'if you want this sheet to be displayed after your macro is executed
End Sub
这就是你要找的东西吗?