1

这是我第一次在 Stack Overflow 上发帖。我正在尝试使用 VBA 让它根据工作表 1 中的单元格值创建一个新工作表。但如果工作表已经存在,我需要它来打开该工作表。我对此有困难,因为我实际上不知道工作表的名称。我想如果我使用计数器创建另一个存储项目名称的工作表,我可以做到这一点。它显示我有运行时错误 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

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

4

1 回答 1

1

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

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
于 2017-06-11T16:41:53.007 回答