工作表名称到一行

Worksheet Names to a row

VBA 的完全初学者越简单越好。 我想收集 excel 中的所有 sheet 个名称并将它们插入到第一行。我可以使用找到的宏收集名称(如下所示),但我不知道如何将值转换为仅在第一行而不是第一列?

Sub TestNames()
    Dim Ws As Worksheet
Dim LR As Long

For Each Ws In ActiveWorkbook.Worksheets
LR = Worksheets("Worksheet Names").Cells(Rows.Count, 1).End(xlUp).Row + 1
'This LR varaible to find the last used row
Cells(LR, 1).Select
ActiveCell.Value = Ws.Name
Next Ws
    
End Sub

https://www.wallstreetmojo.com/vba-name-worksheet/#:~:text=In%20VBA%2C%20to%20name%20a,its%20name%20using%20Worksheet%20object.

非常接近,只需检查最后一列,re-arrange Cells(LR, 1).Select 就像下面的例子一样。 请记住,找到最后一行和最后一列并不是很直接的任务,有不同的方法,- 研究它们并应用最适合的方法。

Sub TestNames()

Dim Ws As Worksheet
Dim LastColumn As Long

For Each Ws In ActiveWorkbook.Worksheets
'LR = Worksheets("Worksheet Names").Cells(Rows.Count, 1).End(xlUp).Row + 1
LastColumn = Worksheets("Worksheet Names").Cells(1, Worksheets("Worksheet Names").Columns.Count).End(xlToLeft).Column + 1


Worksheets("Worksheet Names").Cells(1, LastColumn).Value = Ws.Name

Next Ws
    
End Sub

第一行的工作表名称

Option Explicit

Sub TestNames()
    
    Dim dws As Worksheet: Set dws = ThisWorkbook.Worksheets("Worksheet Names")

    Dim sws As Worksheet
    Dim c As Long
    
    For Each sws In ThisWorkbook.Worksheets
        c = c + 1
        dws.Cells(1, c).Value = sws.Name
    Next sws
    
End Sub