VBA Excel-在活动单元格中插入部分行

时间:2018-08-01 21:36:16

标签: excel vba excel-vba

我一直在尝试VBA代码,想弄清楚如何在有活动单元格的地方插入部分行(B:E的范围)。

这里的初学者会很感激

谢谢!

Sub Adding()
'
' Adding Macro
'
' Keyboard Shortcut: Ctrl+g
'
    Range("B177:E177").Select
    Selection.Insert Shift:=xlDown
    ActiveWindow.SmallScroll Down:=-162
    Range("K9").Select
    Selection.AutoFill Destination:=Range("K9:K1936"), Type:=xlFillDefault
    Range("K9:K1936").Select
    ActiveWindow.ScrollRow = 1904
    ActiveWindow.ScrollRow = 1902
    ActiveWindow.ScrollRow = 1893
    Range("L177").Select
    ActiveCell.FormulaR1C1 = _
        "Test. "
End Sub

1 个答案:

答案 0 :(得分:0)

由于您正在凝视,您可能需要阅读How to avoid using Select in Excel VBA

此外,唯一需要插入几个单元格的VBA就是

ActiveSheet.Range("B177:E177").Insert Shift:=xlDown

...其余的代码只是起毛和修补,与问题无关。录制宏是一种很好的方法,它可以迅速指出正确的方向并提供新的属性/功能。但是一旦获得所需的东西,就去掉多余的绒毛(任何表示.Select/Selection/ActiveWindow的东西),无论如何这只会减慢代码的速度。


ActivecellSelection之间是有区别的。

  • 选择 是所有选中/突出显示的单元格的Range变量。
  • ActiveCell 是一个仅包含1个单元格的范围。突出显示为白色的单元格,如果您开始输入该值,则该单元格将会更改。您可以通过点击 {shift +} Tab 来将活动单元格更改为选择中的 {previous} / next单元格。 strong>键。

因此要插入选定的单元格,请使用:

Selection.Insert Shift:=xlDown

对于活动单元格,请使用:

ActiveCell.Insert Shift:=xlDown

注意:选择/ ActiveCell 始终基于ActiveworkBook.Activeworksheet