Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何选择打印到哪里?_Vba_Excel - Fatal编程技术网

Vba 如何选择打印到哪里?

Vba 如何选择打印到哪里?,vba,excel,Vba,Excel,我有一个宏,用于打印工作簿中所有工作表的名称: Sub GetSheetNames() Dim i% For i = 1 To Sheets.Count Cells(i, 1).Value = Sheets(i).Name Next i End Sub 每当我运行宏时,它都会在我选择的任何单元格中打印名称。我想让它在单独的纸上打印出来。我如何才能做到这一点?您需要在需要输出的地方进行限定。非限定引用默认为当前工作表。例如,这将从第1行和第1列开始输出到Sheet2: Sub GetShee

我有一个宏,用于打印工作簿中所有工作表的名称:

Sub GetSheetNames()

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

End Sub

每当我运行宏时,它都会在我选择的任何单元格中打印名称。我想让它在单独的纸上打印出来。我如何才能做到这一点?

您需要在需要输出的地方进行限定。非限定引用默认为当前工作表。例如,这将从第1行和第1列开始输出到Sheet2:

Sub GetSheetNames()

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

End Sub
查看单元格(i,1)的值现在如何在前面有一个工作表引用?根据您想从哪里开始,您可能需要添加行计数器。将循环迭代器同时用于图纸名称引用和单元格引用可能不是您最终想要的

将图纸从另一行(本例中为第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行和第1列开始输出到Sheet2:

Sub GetSheetNames()

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

End Sub
查看单元格(i,1)的值现在如何在前面有一个工作表引用?根据您想从哪里开始,您可能需要添加行计数器。将循环迭代器同时用于图纸名称引用和单元格引用可能不是您最终想要的

将图纸从另一行(本例中为第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
这就是你要找的吗?

试试这个:

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

这就是你要找的吗?

我不想让它成为新的床单。我只想把它打印到一张已经创建好的指定图纸上。啊,我明白了。指定工作表的名称是什么?我会试着相应地调整代码。你能给我看看吗?我遇到了一些编译错误,工作表的名称是“列表”,我编辑了我的帖子以引用你指定的工作表。试试看,让我知道。我不想让它变成新的床单。我只想把它打印到一张已经创建好的指定图纸上。啊,我明白了。指定工作表的名称是什么?我会试着相应地调整代码。你能给我看看吗?我遇到了一些编译错误,工作表的名称是“列表”,我编辑了我的帖子以引用你指定的工作表。请尝试并让我知道。如何指定要打印的图纸名称to@user2778618我以另一种方式编辑以限定图纸名称。这就是你想要的吗?我如何指定要打印的图纸名称to@user2778618我以另一种方式编辑以限定图纸名称。这就是你想要的吗?