Excel VBA-删除工作表1中的整行

Excel VBA-删除工作表1中的整行,excel,vba,Excel,Vba,我一直在使用以下命令删除一行 Rows([2]).EntireRow.Delete 但当时我的工作簿只有一张纸。sheet2中添加了一个命令按钮,用于调用sheet1中的宏 我应该如何修改上述代码,以便VBA删除sheet1的第二行?除了像以前那样指定行之外,您只需要指定该行所在的工作表。即 Worksheets("Sheet1").Rows(2).EntireRow.Delete 你应该做你想做的事。如果您将工作表命名为与“Sheet1”不同的名称,请更改引号内的内容。严格地说,您

我一直在使用以下命令删除一行

   Rows([2]).EntireRow.Delete
但当时我的工作簿只有一张纸。sheet2中添加了一个命令按钮,用于调用sheet1中的宏


我应该如何修改上述代码,以便VBA删除sheet1的第二行?

除了像以前那样指定行之外,您只需要指定该行所在的工作表。即

 Worksheets("Sheet1").Rows(2).EntireRow.Delete
你应该做你想做的事。如果您将工作表命名为与“Sheet1”不同的名称,请更改引号内的内容。严格地说,您不需要指定它是要删除的整行,因为您已经说过它是您正在处理的
行(2)
,但它也不会造成任何伤害

如果您还想从其他工作簿中执行删除操作(或确保删除操作发生在正确的工作簿中),还可以指定工作簿名称:

Workbooks("Workbookname.xlsm").Worksheets("Sheet1").Rows(2).EntireRow.Delete

如果您的按钮位于任何其他工作表中,并且希望从其他工作表中删除一行,则只需激活该工作表即可。例如,您试图从图纸1中删除行,然后您可以通过这一行激活图纸

Sheets(0).Activate

为什么使用
EntireRow
如果您已经指定了行号,
EntireRow
在需要确定范围的行时使用,
range(“A1”)。EntireRow
用于instanceIt是OP使用的,保持代码尽可能与已经使用的代码相似,从OP的角度来看,这会稍微容易理解,尤其是在没有任何好的理由更改它的情况下@在这种情况下,代码被认为是超重的,所以用简单的话来说就是油中油,但无论如何,这是你的答案,你可以使用或不使用来自另一个用户的注释。你的代码正在工作。我忘记了我已经更改了工作表的名称。激活工作表而不是引用要编辑的区域。也不能保证OP想要处理的工作表是索引为0.5的工作表。然而,这只是一个演示如何激活工作表并对其进行操作的示例。因此,要激活名为“DAT_FL”的工作表1,我是否需要写工作表(1)。激活有没有一种方法可以知道我工作表的索引号?是的。按名称
Sheets(“Sheet2”)。激活
并获取索引,然后按索引激活
ind=Sheets(“Sheet3”)。索引表(ind)。激活