我有这个子程序,可以在Excel工作表中插入新行。 每行在A列中都有一个日期,我想按顺序(从最旧到最新)插入该日期。因此,如果我要插入的日期大于最后一个日期,则只需在底部添加一个新行。 否则,我会寻找插入空白行并填充数据的位置。 我被卡在插入新行的部分:
cell.Rows(riga).EntireRow.insert
整个子是这样的:
Sub insert_row()
lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
data_last = Range("A" & lastRow).Value
'prendo i valori
data_mov = new_mov.data.Value
descr_mov = new_mov.descr.Value
importo_mov = new_mov.importo.Value
'emetto un alert se la data inserita minore di quella della riga precedente (lastRow)
If data_mov < data_last Then
MsgBox "movimento nel passato"
Dim rng As Range, cell As Range
Set rng = Range("C5:C" & lastRow)
For Each cell In rng
riga = cell.Row
data = Range("A" & riga).Value
If data > data_mov Then
riga = riga - 1
cell.Rows(riga).EntireRow.insert
Exit For
End If
Next cell
Else
'li inserisco nella prima riga vuota sotto
nxt_row = lastRow + 1
Range("A" & nxt_row).Value = data_mov
Range("B" & nxt_row).Value = descr_mov
Range("C" & nxt_row).Value = CDbl(importo_mov)
Call Saldo_upd
End If
'evidenzio una cella di quella riga
'ricalcolo il saldo
End Sub
我没有收到任何错误消息,什么都没有发生。有提示吗?
答案 0 :(得分:1)
如果您有一个单元格引用,并且想在它是cell.EntireRow.Insert`之前插入一行,则类似于:
dim cell as range
set cell = Range("A2")
cell.EntireRow.Insert
...或者如果要在第3行之前插入
Rows(3).EntireRow.Insert
...或插入许多行:
Rows("3:8").EntireRow.Insert
Range.EntireRow
Property Range.Insert
Method