在VBA中打开基于单元名称的工作表

这是我第一次发布堆栈溢出。 我正在尝试使用VBA来创build基于表格1中单元格值的新工作表。但是,如果表格已经存在,我需要它来打开该表格。 由于我实际上不知道表单的名称,所以我遇到了困难。 我想我可以做到这一点,如果我创build另一个工作表,它存储项目的名称,使用计数器。 它显示我有运行时错误91.这是我目前的代码:

Public Sub DailyReport() Dim project As Range project = Worksheets("Target Flow").Range("B3") Dim i As Integer i = 1 If Worksheets("Target Flow").Range("B3") <> Worksheets("Projects").Cells(1000, 1).Value Then Worksheets("Target Flow").Range("B3").Select Selection.Copy Worksheets("Projects").Activate Cells(i, 1).Select ActiveSheet.Paste Dim WS As Worksheet Set WS = Sheets.Add(After:=Sheets(Worksheets.Count)) WS.Name = project.Value i = i + 1 Else Worksheets("Target Flow").Activate Worksheets(ActiveSheet.Range("B3").Value).Activate End If End Sub 

如果有人能指导我正确的方向,我将不胜感激!

此代码将扫描活动工作簿中的所有工作表,以查看名称是否匹配,如果有,则会激活它。 循环后,如果没有看到一个匹配,它会创build它。

 Dim targetSheetName As String Dim targetSheetFound As Boolean Dim sheet As Worksheet targetSheetName = Worksheets("Target Flow").Range("B3") targetSheetFound = False For Each sheet In ActiveWorkbook.Worksheets If sheet.Name = targetSheetName Then targetSheetFound = True sheet.Activate End If Next If Not targetSheetFound Then set sheet = Sheets.Add sheet.Name = targetSheetName End If 
Interesting Posts