2010-07-08 87 views
1

有趣的是,只有在Excel窗口中实际选择了工作表时,以下代码才有效。我真的很想尽快完成这个宏,但似乎无法解决如何选择一个特定的工作表,以便它在Excel中打开?非常感谢,如果有人知道如何。我必须使用范围等。如何打开vba中的工作表?

sheet.Range(Cells(firstRow, 2).Address(False, False), Cells(lastRow, 50)).Select 
With Selection 
    .Copy 
End With 
sheet.Range(Cells(firstRow, 3).Address(False, False), Cells(lastRow, 51)).Select 
With Selection 
    .PasteSpecial xlPasteValuesAndNumberFormats 
End With 

回答

4

您可以通过名称或基于1的索引(数字 - 第一个工作簿,第二个等等)来激活工作表。无论哪种方式,语法都是一样的。

这将激活第三个工作表:

ActiveWorkbook.Sheets(3).Activate 

这将激活工作表命名统计:

ActiveWorkbook.Sheets("stats").Activate 

当然,你不必实际上使在Excel中选定工作表窗口来处理它。您的代码使用名为sheet的变量,我假设您已将其分配给活动工作表。而不是这样做,你可以set sheet = ActiveWorkbook.Sheets("stats"),然后与工作表,即使不在视图中。

1

Workbooks(x).Worksheets(x).Activate?