我需要在每个选项卡的单元格A1中插入选项卡名称,并更改选项卡名称

时间:2015-01-20 08:07:58

标签: excel vba excel-vba

我需要打开一个具有固定名称的工作表,并在工作表顶部插入每个选项卡的名称(将根据当前日期更改)。

我修改了之前答案中的一些代码,并且当代码不包含打开工作簿的代码时代码正常工作。现在它弹出选项卡,但没有将名称插入Cells(1, 1),我不知道为什么。最后还会出现错误:Run-time error 91,问题较少,但修复效果会很好。

任何提示或建议非常感谢。以下是我目前的代码:

Sub PSOPENTAB()
    ChDir "G:\directory"
    Workbooks.Open Filename:="G:\directory\filename.xls"
    Windows("filename.xls").Activate
    ActiveWorkbook.Worksheets(1).Activate
    Call nametop
End Sub

Sub nametop()
    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 To .Worksheets.Count - 1
            .ActiveSheet.Cells(1, 1) = .Worksheets(i).Name
             ActiveSheet.Next.Select
        Next i
    End With
End Sub

1 个答案:

答案 0 :(得分:0)

您需要正确引用您的对象 你的问题是:

  1. 您在Thisworkbook例程中使用nametop。因此它始终适用于包含代码的工作簿。
  2. 您可以将其更改为ActiveWorkbook,但这可能会导致您将来遇到其他问题。 See this cool stuff to know more about why to avoid Activeworkbook/Activesheet and the like
  3. 应用在那里讨论的内容,请尝试以下代码:

    Sub PSOPENTAB()
        Dim wb As Workbook
        Set wb = Workbooks.Open(Filename:="G:\directory\filename.xls")
        nametop wb
    End Sub
    

    Sub nametop(wb As Workbook)
        Dim ws As Worksheet
        For Each ws In wb.Worksheets
            ws.Cells(1, 1) = ws.Name
        Next ws
    End Sub
    

    上面的代码在每张纸的单元格A1中添加了纸张的名称 这是你正在尝试的吗?