Excel VBA插入复制的单元格并将单元格向下移动错误
完成这里的业余爱好者。我一直在困惑这几个小时,并且我找不到任何帮助我的任何其他线索。如果在其他地方问过这个问题,我的智慧就很难过了。Excel VBA插入复制的单元格并将单元格向下移动错误
我试图创建一个可笑的简单宏做到以下几点:
Go to Sheet2,
Select C6:C10
Copy
Go to Sheet3
Insert copied cells in B2 and shift the other cells down.
我这样做只是通过录制宏,但每次我这样做的时候,我得到不同的错误。我现在的错误是'插入方法的范围类失败',但有时错误弹出'Selection.Copy'。这是我有的代码:
Sub InsertCellsShitDown()
'
' InsertCellsShitDown Macro
'
'
Sheets("Booking Sheet").Select
Range("C6:C10").Select
Selection.Copy
Sheets("Sheet1").Select
Range("B2").Select
Selection.Insert Shift:=xlDown
End Sub
任何帮助将非常感激。
Sub InsertCellsShiftDown()
'
' InsertCellsShitDown Macro
Dim bookingWS As Worksheet, mainWS As Worksheet
Dim copyRng As Range
Set bookingWS = Sheets("Booking Sheet")
Set mainWS = Sheets("Sheet1")
Set copyRng = bookingWS.Range("C6:C10")
mainWS.Range("B2:B" & copyRng.Rows.Count + 1).Insert Shift:=xlDown
copyRng.Copy mainWS.Range("B2")
End Sub
这是如何工作的?我假设你想插入5行,所以从B2:B7
,然后把数据。
这完全没有bug(大量开发!),但它将所有行向下移动,这是我不想要的。 我需要向下移动的唯一单元格是我插入的单元格正下方的行。那有意义吗?我认为'EntireRow'是这里的问题。 – Knargle
@Knargle - Yah,检查编辑(我刚刚删除了EntireRow'部分) – BruceWayne
Bingo。非常感谢!我需要花一些时间认真学习这一点。 – Knargle
错误很可能是由于使用了Select方法。 [建议避免使用该语句](https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros) – davidmneedham
请删除MACROS标记 - 它应该不适用于VBA/MS-Office语言。 – flaZer
也许是因为子被称为'ShitDown':] – Slai