循环遍历名称并插入行

时间:2015-05-01 11:54:14

标签: excel vba excel-formula

在第一次检查时,这听起来很容易 - 它可能适合大多数人,但是我在一周之内一直使用VBA并且认为我已经完善了谷歌技术 - 我有多么错误......

我有一个球员名单列表,旁边是他们的队长(因此每个球队都有一个球员名单,队长会按队名重复)

我希望能够编写一些代码,这些代码会自动通读并且在船长/团队名称更改后插入两行

不幸的是,我当前尝试使用循环失败了,因为我最终在每一行之后创建了一个新行。

非常感谢任何帮助:)

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

1 个答案:

答案 0 :(得分:0)

循环应该这样做:

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 = i + 2,以指示正确的行,而不是新插入的行。
  2. 下一行应该被处理,i应该递增,无论它是否是新TM。