如何select打印到哪里?

我有一个macros打印工作簿中的所有工作表的名称:

Sub GetSheetNames() Dim i% For i = 1 To Sheets.Count Cells(i, 1).Value = Sheets(i).Name Next i End Sub 

每当我运行这个macros时,它会在我select的任何单元格中打印这个名字。 我希望它打印在自己的单独的工作表。 我怎样才能做到这一点?

您需要确定输出的位置。 不合格的参考默认为您当前的工作表。 例如,这将输出到Sheet2开始行1和列1:

 Sub GetSheetNames() Dim i% For i = 1 To Sheets.Count Sheet2.Cells(i, 1).Value = Sheets(i).Name Next i End Sub 

看看单元格(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 

尝试这个:

 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 

那是你在找什么?