我在第一个工作表上有一个与工作表名称对应的列表。
列表从 1 到 ...,工作表名称为 BT1, BT2, ....
现在我创建了一个宏来从列表中删除一行并删除特定的工作表,但是在删除工作表后,必须根据数字列表重命名剩余工作表。
假设我删除了Team 3,Team 3是从1到10。代码删除了相应的行和工作表,然后它首先更改了单元格(A?)中的单元格公式,因此列表列表从1到0重置9 然后更改工作表名称。
我知道我需要一个循环,但不知道/理解如何编写这种类型的代码。
我编写了以下宏。在“循环重命名工作表”时,我想创建一个循环来重命名工作表,但不知道/理解如何编写代码。
Sub Team_Verwijderen()
Dim intMyVal As Integer, a As Integer
Dim lngLastRow As Long, i As Long
Dim strRowNoList As String, List2 As String, List_1 As String
Dim Zoekwaarde As Variant
Dim cell As Variant
Dim naam$, laatsteNaam$
Zoekwaarde = InputBox("Vul het Teamnummer in dat je wilt verwijderen.")
On Error GoTo Errorhandler
intMyVal = Zoekwaarde 'Value to search for, change as required.
lngLastRow = Cells(Rows.Count, "A").End(xlUp).Row 'Search Column A, change as required.
For Each cell In Range("A3:A" & lngLastRow) 'Starting cell is A2, change as required.
If cell.Value = intMyVal Then
If strRowNoList = "" Then
strRowNoList = strRowNoList & cell.Row
Else
strRowNoList = strRowNoList & ", " & cell.Row
End If
End If
Next cell
List2 = strRowNoList
List_1 = Range("A" & strRowNoList).Value
Sheets("BT" & List_1).Delete
Blad1.Range("A" & strRowNoList & ":K" & strRowNoList).Delete xlUp
'Loop to Rename worksheets
naam = "BT" & List_1
Range("A" & List2).Formula = "=if(B" & List2 & "="""","""",A" & List2 - 1 & "+1)"
Sheets("BT" & List_1 + 1).Name = naam
'-------------------------
Errorhandler:
Blad1.Select
Range("B3").Select
End Sub
我希望有人能帮助我。
' Loop to Rename worksheets
For i = List_1 + 1 To lngLastRow - 2 ' assuming you have 10 teams and starting from 3rd row
naam = "BT" & i
Range("A" & i + 2).Formula = "=IF(B" & i + 2 & "="""","""",A" & i + 1 & "+1)"
Sheets("BT" & i + 1).Name = naam
Next i
' -------------------------
Exit Sub ' Exit the subroutine after successful execution
上面的食物循环应该能够按照您所描述的方式管理任务。它迭代剩余的工作表并根据数字列表更新它们的名称。请注意,我使用 lngLastRow - 2 作为循环的上限,假设从第 3 行开始有 10 个团队。根据您的实际数据结构相应调整该值。