遍历名称并插入行

Loop through Names and insert rows

乍一看,这听起来真的很简单 - 对于你们大多数人来说可能是这样,但是我使用 VBA 不到一周时间,我认为我已经完善了 google 技术 -我错了...

我有一个球员名单,旁边是他们的队长(因此每支球队都有一个球员名单,队长和队名一样向下重复)

我希望编写一些代码来自动读取并在 captains/teams 名称更改时插入两行

不幸的是,我目前使用循环的尝试没有成功,因为我最终在每一行之后创建了一个新行。

非常感谢任何帮助:)

Sub InsertRows()
Dim TM As String
Dim TM2 As String

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet2")

TM = ws.Cells(2, "B").Value
TM2 = TM
i = 3
Do
    TM = ws.Cells(i, "B").Value
    If TM <> TM2 Then
    EntireRow.Insert
    EntireRow.Insert
    Else
    i = i + 1
    TM2 = ws.Cells(i, "B").Value
    If TM = "" Then Exit Do

End If
Loop
End Sub

即使没有代码可看,我敢打赌您也可以通过在列表中向上移动而不是向下移动来解决此问题。

For intA = 10 to 1 step -1 
' ...

下一个

循环应该这样做:

Do
    TM = ws.Cells(i, "B").Value
    If TM <> TM2 Then
        ws.Cells(i, "B").EntireRow.Insert
        ws.Cells(i, "B").EntireRow.Insert
        i = i + 2
    End If
    TM2 = ws.Cells(i, "B").Value
    i = i + 1
Loop Until ws.Cells(i, "B").Value = ""
  1. 插入新行后,您需要使用语句 i = i + 2 更新 i 以指示正确的行而不是新插入的行。
  2. 应该处理下一行并且 i 应该递增,无论它是否是新 TM。