Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
所选行在EntireRow.insert VBA命令后被卡住_Vba - Fatal编程技术网

所选行在EntireRow.insert VBA命令后被卡住

所选行在EntireRow.insert VBA命令后被卡住,vba,Vba,我有一个Excel电子表格,我想在离散的数据范围之间插入行。有关示例表,请访问。我的问题是,当我运行VBA代码时,插入行的一部分总是被选中,我无法轻松取消选中。下面是它的屏幕截图: 我使用的代码是: Sub insertrows() For i = 1 To 2 Range("A1").Select For j = 1 To i * 2 - 1 Selection.End(xlDown).Select Next j ActiveCell.Offset(1).EntireRow.inse

我有一个Excel电子表格,我想在离散的数据范围之间插入行。有关示例表,请访问。我的问题是,当我运行VBA代码时,插入行的一部分总是被选中,我无法轻松取消选中。下面是它的屏幕截图:

我使用的代码是:

Sub insertrows()
For i = 1 To 2
Range("A1").Select
For j = 1 To i * 2 - 1
    Selection.End(xlDown).Select
Next j
ActiveCell.Offset(1).EntireRow.insert
    ActiveCell.Offset(1).EntireRow.insert
Next i
Range("A1").Select
End Sub

我正在MacBook OS X 10.10.1上使用Excel for Mac 2011(14.4.5)。

假设您想在每个范围块中插入两行(如果我错了,请更正我)

这个代码就行了

Sub insertrows()
Dim lrow As Long
Range("A1").Select
Selection.End(xlDown).Select

Do
ActiveCell.Offset(1).EntireRow.Insert
ActiveCell.Offset(1).EntireRow.Insert
Selection.End(xlDown).Select
Selection.End(xlDown).Select
lrow = ActiveCell.Row

Loop Until lrow = Rows.Count

End Sub

我接受了这个答案,但现在意识到,当只有两个数据块时,它会给出一个1004错误。使用3+时效果很好,但不使用2。知道可以修复什么吗?在错误恢复下一步-将这一行添加到子例程的开头这不是很有帮助,因为这些行仍然没有被添加。当然,它可以防止宏崩溃,但是宏中稍后的命令无法正常运行,因为没有添加行。首先,我如何避免错误?