我需要在每个选项卡的单元格 A1 中插入选项卡名称,并更改选项卡名称
I need to insert tab name in cell A1 of every tab with changing tab names
我需要打开一个固定名称的作品sheet,并在sheet顶部插入每个选项卡的名称(会根据当前日期变化)。
我修改了以前答案中的一些代码,并在不包含打开工作簿的代码时使代码正常工作。现在它快速浏览选项卡,但没有将名称插入 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
您需要正确引用您的对象。
您的问题是:
- 您在
nametop
例程中使用了 Thisworkbook
。所以它将始终在包含代码的工作簿上工作。
- 您可以将其更改为
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
以上代码在每个 sheet 的单元格 A1 中添加 sheet 的名称。
这是您要尝试的吗?
我需要打开一个固定名称的作品sheet,并在sheet顶部插入每个选项卡的名称(会根据当前日期变化)。
我修改了以前答案中的一些代码,并在不包含打开工作簿的代码时使代码正常工作。现在它快速浏览选项卡,但没有将名称插入 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
您需要正确引用您的对象。
您的问题是:
- 您在
nametop
例程中使用了Thisworkbook
。所以它将始终在包含代码的工作簿上工作。 - 您可以将其更改为
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
以上代码在每个 sheet 的单元格 A1 中添加 sheet 的名称。
这是您要尝试的吗?