在第一次检查时,这听起来很容易 - 它可能适合大多数人,但是我在一周之内一直使用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
答案 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 = ""
i
更新i = i + 2
,以指示正确的行,而不是新插入的行。i
应该递增,无论它是否是新TM。