0

動的データに基づいて非常に複雑な Excel マクロを作成しようとしています。私の最初の障害は、現在のタブの後に各タブの名前を取得し、現在のシートの 3 列ごとにその名前を挿入するボタン トリガー Excel マクロを取得するのに苦労していることです。

私は持っている:

    Sub Macro1()
    On Error Resume Next
    For Each s In ActiveWorkbook.Worksheets
    Sheet2.Range("A1:ZZ1").Value = s.Name
    Next s
    End Sub

A1 と ZZ1 の間に最後のシートの名前を入力しているように見えるだけなので、これは実際にはうまく機能しません。私は何を間違っていますか?

4

1 に答える 1

0

Activesheetこれにより、ワークシートの名前がActiveshseet の行 1 の 3 列ごとに右側のタブに配置されます。

Sub Macro1()
Dim i As Long

With ThisWorkbook
    'exit if Activesheet is the last tab
    If .ActiveSheet.Index + 1 > .Worksheets.Count Then
        Exit Sub
    End If
    For i = .ActiveSheet.Index + 1 To .Worksheets.Count
        .ActiveSheet.Cells(1, (i - .ActiveSheet.Index) + (((i - .ActiveSheet.Index) - 1) * 2)) = .Worksheets(i).Name
    Next i
End With
End Sub

On Error Resume Next元のコードで行った一般的な方法で使用するのは悪い考えであることに注意してください。予期しない他のエラーを誤って隠す可能性があります。予想されるエラーをキャッチするためにのみ使用する必要があります。

于 2013-06-29T15:43:50.697 に答える