我需要打开一个具有固定名称的工作表,并在工作表顶部插入每个选项卡的名称(将根据当前日期更改)。
我修改了之前答案中的一些代码,并且当代码不包含打开工作簿的代码时代码正常工作。现在它弹出选项卡,但没有将名称插入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
答案 0 :(得分:0)
您需要正确引用您的对象 你的问题是:
Thisworkbook
例程中使用nametop
。因此它始终适用于包含代码的工作簿。ActiveWorkbook
,但这可能会导致您将来遇到其他问题。 See this cool stuff to know more about why to avoid Activeworkbook/Activesheet and the like 应用在那里讨论的内容,请尝试以下代码:
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中添加了纸张的名称 这是你正在尝试的吗?