繁体   English   中英

转到标签功能的问题

[英]Problems with go to label function

我正在运行以下宏来打开 130 个 excel 文件,并将它们复制到每个实体的单独工作表中。 它有点适合我想做的事情(尽管可能不是最有效的)。 一旦工作表已经存在,我希望宏不再创建新工作表,而是跳过这一步。

我正在尝试为此使用错误代码,但是我无法使以下部分正常工作:

On Error Goto skip

即使此代码下面的公式有错误,它也会不断返回通知“下标超出范围”。

有谁知道我在这里做错了什么?

Sub Macro2()

'Select item Location
Row = 2
nextitem: Row = Row + 1

' Create sheet
Sheets("Location").Select
Week = ActiveSheet.Range("c1").Value
Complete = ActiveSheet.Range("b" & Row).Value
Entity = ActiveSheet.Range("a" & Row).Value
Workbook_Entity = Entity & " - Week " & Week & ".xlsx"

If Complete = "Yes" Then
    GoTo nextitem
    Else

On Error GoTo Skip
Sheets(Entity).Select
GoTo Skipped2

Exit Sub

Skip:
Sheets.Add(After:=Sheets(Sheets.Count)).Name = Entity

Skipped2:

'Open Workbooks

Workbooks.Open Filename:=ThisWorkbook.Path & "\location\" & Workbook_Entity

Sheets("Week - Hidden").Visible = True
Sheets("Week - Hidden").Select
Columns("A:G").Select
Selection.Copy
Windows("Overview.xlsm").Activate
Sheets(Entity).Select
Range("a1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Windows(Workbook_Entity).Activate
ActiveWorkbook.Save
Sheets("Week - Hidden").Visible = False
ActiveWindow.Close

'Rotate
If Item_Region = "003" Then

GoTo Enditall

Else

GoTo nextitem

Enditall:

End If
End If

End Sub

关闭但更好的仍然是

Function TryGetSheet(ByVal ipSheetName As String, ByRef opSheet as worksheet) as Boolean

   On Error Resume Next
   Set opSheet = ThisWorkbook.sheets(ipSheetName) 
   TryGetSheet = Err.Number = 0
   On Error GoTo 0

End Function

我找到了答案,它为我解决了这个问题。 希望它也可以帮助其他人

If DoesSheetExists(s) Then
GoTo Skipped2

Else
Sheets.Add(After:=Sheets(Sheets.Count)).Name = Entity
Skipped2:

End If

具有以下功能

Function DoesSheetExists(sh As String) As Boolean
Dim ws As Worksheet

On Error Resume Next
Set ws = ThisWorkbook.Sheets(sh)
On Error GoTo 0

If Not ws Is Nothing Then DoesSheetExists = True
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM