我有两个工作表,我需要将工作表Blah中的实体ID与工作表Blah1中的实体ID进行比较。实体ID存储在两个工作表的A列中。如果Blah中存在实体ID但Blah 1中不存在实体ID,我需要在Blah 1表中插入一个空白行,它缺少实体ID。我需要比较的行数范围将逐月变化。我知道Blah 2上的第5行到第92行匹配第2行到第89行,但它开始在第11行插入并继续插入行直到我遇到逃逸。我知道我也可能需要另一个,如果它告诉代码转到下一个我,如果实体ID是空白的,但我不知道该怎么做。
总而言之,我需要比较实体ID并为缺少的任何实体ID插入新行。任何帮助将不胜感激。
Sub InsertNewRow()
Dim i As Long, j As Long, lastrow1 As Long, lastrow2 As Long
lastrow1 = Sheets("Blah").Range("A" & Rows.Count).End(xlUp).Row
lastrow2 = Sheets("Blah1").Range("A" & Rows.Count).End(xlUp).Row
For j = 2 To lastrow2
For i = 5 To lastrow1
If Sheets("Blah").Cells(j, 1) <> Sheets("Blah1").Cells(i, 1) Then
Sheets("Blah1").Cells(i, 1).EntireRow.Insert
End If
Next i
Next j
End Sub
答案 0 :(得分:0)
我实际上能够在Excel先生身上找到答案。我认为这是双重Fors让我搞砸了。一旦弄明白,我就能弄明白如何将表格Blah中所需的值添加到工作表Blah1中。在根据斯科特所说的搜索时,我无法找到我真正需要的东西。我确信有更简单的方法可以做到这一点,而且随着我获得更多经验,也许我会弄清楚。
Sub InsertRows()
Dim lastrow As Long, i As Long, j As Long
lastrow = Sheets("Blah").Range("A" & Rows.Count).End(xlUp).Row
j = 14
For i = 2 To lastrow
If Sheets("Blah1").Cells(j, 1).Value <> Sheets("Blah").Cells(i, 1).Value Then
Sheets("Blah1").Rows(j).Insert Shift:=xlDown
Sheets("Blah1").Cells(j, 2).Value = Sheets("Blah").Cells(i, 10).Value
Sheets("Blah1").Cells(j, 3).Value = Sheets("Blah").Cells(i, 11).Value
Sheets("Blah1").Cells(j, 5).Value = "2017"
Sheets("Blah1").Cells(j, 6).Value = Sheets("Blah").Cells(i, 2).Value
Sheets("Blah1").Cells(j, 7).Value = Sheets("Blah").Cells(i, 3).Value
Sheets("Blah1").Cells(j, 8).Value = Sheets("Blah").Cells(i, 4).Value
Sheets("Blah1").Cells(j, 9).Value = Sheets("Blah").Cells(i, 5).Value
End If
j = j + 1
Next i
End Sub