我们的客户希望他们的Excel工作表格式化为每当“A”列中存在新值时,将新标题(整个“1”行)插入最后一个值之上
基本上我在复制行'1'并在我在'A'列中找到新值时插入它
这是我用来格式化它的子,但它只是保持循环和崩溃。
Sub insertHeader()
Range("A2").Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value = ActiveCell.Offset(1, 0) Then
ActiveCell.Offset.Select
Else
Range("A1").EntireRow.Insert
ActiveCell.Offset.Select
End If
Loop
End Sub
答案 0 :(得分:0)
你必须告诉Offset偏移的方式和位置。与偏移(行偏移,列偏移)一样:
ActiveCell.Offset(1,0).Select
哦,还有你的副本,伙计......好的,这是代码:
range("a3").select
Do Until ActiveCell.Value = ""
If ActiveCell.Value <> ActiveCell.Offset(-1, 0).Value Then
'comparing it upwards, as the standard insert will insert a row above your active cell.
ActiveCell.EntireRow.Insert
Range("a1").EntireRow.Copy ActiveCell
ActiveCell.Offset(1, 0).Select
'move on to the row I was at before inserting a new row
End If
ActiveCell.Offset(1, 0).Select
Loop