我有一个Excel文件,我希望通过将选项卡中的当前行数与另一个选项卡的行数进行比较来重新调整行数。 因此,当我的范围小于我要比较的范围时,我想插入差异,以便两个范围具有相同的行数。 如果我当前的范围比删除行的范围更大,我想分别想要。
到目前为止,我有这个代码,它适用于小范围。但是当比较例如100时,1000就是粉碎。
* nbr是我的工作文件中的行数与数据库中的行数之间的绝对差值。换句话说,它将始终是要插入或删除的行数。
这是我正在使用的代码:
Dim sh1 As Worksheet
Set sh1 = ThisWorkbook.Sheets("WORKING FILE")
Dim sh2 As Worksheet
Set sh2 = ThisWorkbook.Sheets("DATABASE")
Dim nbr As Integer
Dim CellDB As Integer
Dim CellWRK As Integer
Dim i As Integer
CellDB = ThisWorkbook.Sheets("DATABASE").Range("A1").Value
CellWRK = ThisWorkbook.Sheets("WORKING FILE").Range("A1").Value
nbr = ThisWorkbook.Sheets("WORKING FILE").Range("A2").Value
If CellWRK < CellDB Then
With Sheets("WORKING FILE")
For i = 1 To nbr
Rows(22).Insert
Next i
Application.DisplayAlerts = True
End With
ElseIf CellWRK > CellDB Then
With Sheets("WORKING FILE")
For i = 1 To nbr
Rows(22).Delete
Next i
Application.DisplayAlerts = True
End With
答案 0 :(得分:0)
我刚修改了你的If
声明,试一试。
If CellWRK < CellDB Then
For i = 1 To nbr
CellWRK.Rows(22).Insert
Next i
Application.DisplayAlerts = True
ElseIf CellWRK > CellDB Then
For i = 1 To nbr
CellWRK.Rows(22).Delete
Next i
Application.DisplayAlerts = True
End If
无法使用的原因可能是您只使用Rows(22)
而没有工作表参考,因此它仅引用了ActiveSheet
。