根据 VBA 中的单元格名称打开工作表
Opening worksheets based on Cell names in VBA
这是我第一次在 Stack Overflow 上发帖。我正在尝试使用 VBA 让它根据 sheet 1 中的单元格值创建一个新作品 sheet。但是如果 sheet 已经存在,我需要它改为打开 sheet。我在这方面遇到了困难,因为我实际上并不知道 sheet 的名称。我认为如果我使用计数器创建另一个 sheet 来存储项目名称,我就可以做到这一点。它显示我有 运行-时间错误 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
如果有人能指导我正确的方向,我将不胜感激!!
此代码将扫描活动工作簿中的所有工作表以查看是否存在名称匹配,如果存在则将其激活。循环后,如果没有发现匹配项,它将创建匹配项。
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
这是我第一次在 Stack Overflow 上发帖。我正在尝试使用 VBA 让它根据 sheet 1 中的单元格值创建一个新作品 sheet。但是如果 sheet 已经存在,我需要它改为打开 sheet。我在这方面遇到了困难,因为我实际上并不知道 sheet 的名称。我认为如果我使用计数器创建另一个 sheet 来存储项目名称,我就可以做到这一点。它显示我有 运行-时间错误 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
如果有人能指导我正确的方向,我将不胜感激!!
此代码将扫描活动工作簿中的所有工作表以查看是否存在名称匹配,如果存在则将其激活。循环后,如果没有发现匹配项,它将创建匹配项。
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