每当运行宏时,下面的代码将在第2列上方插入一个新行。但是,如果我单击另一个工作表并运行宏,它会在该工作表中插入一个新行,而不是像我指定的那样在工作表1 中插入。有没有办法让它成为当我运行宏时,它只会在特定的工作表上执行那些操作,无论我在哪张纸上?
With Worksheets("Sheet 1")
Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End With
答案 0 :(得分:4)
在“行”之前加一个点
您的引用“Rows”正在使用任何活动行(相当于ActiveSheet.Rows),但该点将使用“With”块。
With Worksheets("Sheet 1")
.Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End With
如果没有点,则甚至不考虑With块,代码等同于:
Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
对于爆炸操作员(!)也是如此。
参考:
答案 1 :(得分:2)
对于单行代码,我不打扰使用With语句:
Worksheets("Sheet 1").Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
答案 2 :(得分:0)
添加'。'在行...
With Worksheets("Sheet 1")
.Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End With