我得到了错误:"如果没有阻止则结束#34;在最后End If
这是我的代码的一部分:
If valorMagnitud > 10 Then
For Each Sheet In Worksheets
If textoCodigo.Value = Sheet.Name Then
GoTo continue
Else
ActiveWorkbook.Unprotect Password:="pAtRiCiA"
Worksheets("Definición").Unprotect Password:="pAtRiCiA"
Worksheets("Definición").Copy Before:=Sheets("Seguimiento")
Worksheets("Definición (2)").Name = textoCodigo.Value
End If
Exit For
continue:
Set ws3 = Worksheets(textoCodigo.Value)
With ws3
.ListObjects(1).Name = "infoRiesgo" & textoCodigo.Value
.ListObjects(2).Name = "planesAccion" & textoCodigo.Value
.Cells(1, 2) = "Definición Planes de Acción " & textoCodigo.Value
.Cells(5, 5) = textoCodigo.Value
.Cells(5, 6) = textoResponsable.Value
.Cells(5, 7) = textoDescripcion.Value
.Cells(5, 8) = textoControles.Value
.Cells(5, 9) = textoFrecuencia.Value
.Cells(5, 10) = textoImpacto.Value
Select Case valorMagnitud
Case Is >= 15
.Cells(5, 11) = "Extremo"
Case 8 To 14
.Cells(5, 11) = "Alto"
Case 4 To 7
.Cells(5, 11) = "Medio"
Case 1 To 3
.Cells(5, 11) = "Aceptable"
End Select
Worksheets(textoCodigo.Value).Protect Password:="pAtRiCiA", DrawingObjects:=True, Contents:=True, Scenarios:=True
.Visible = xlSheetHidden
'.Visible = xlSheetVeryHidden
End With
Worksheets("Definición").Protect Password:="pAtRiCiA", DrawingObjects:=True, Contents:=True, Scenarios:=True
With ws4
.Unprotect Password:="pAtRiCiA"
.Cells(.Range("Planes").Rows.Count + 2, 1) = textoCodigo.Value
.Protect Password:="pAtRiCiA", DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
ActiveWorkbook.Protect Password:="pAtRiCiA", Structure:=True, Windows:=False
Worksheets("Valoración").Activate
End If
答案 0 :(得分:3)
您的错误是由Exit For
代替Next
引起的。
然而......代码的一部分是
For Each Sheet In Worksheets
If textoCodigo.Value = Sheet.Name Then
GoTo continue
Else
ActiveWorkbook.Unprotect Password:="pAtRiCiA"
Worksheets("Definición").Unprotect Password:="pAtRiCiA"
Worksheets("Definición").Copy Before:=Sheets("Seguimiento")
Worksheets("Definición (2)").Name = textoCodigo.Value
End If
Exit For
不会做你认为会做的事情。
除非工作簿中的第一个工作表的名称等于textoCodigo
的值,否则您的代码将复制“Definición”表,并尝试使用值{{ 1}} - 即使工作簿中已经存在该工作表(可能是第二个,第三个,第四个,第四个工作表)。
我认为您正在尝试仅在尚未存在的情况下创建工作表。如果是这样,对代码的最小更改可能是:
textoCodigo