如何使用VSTO找出工作簿中打开的工作表数量

时间:2013-06-20 14:16:23

标签: c#-4.0 vsto add-in excel-2010

我有一个VSTO应用程序,在单个工作簿中我打开多个工作表。 我有一种情况,我必须知道在任何给定的实例中哪些纸张都打开了。有没有办法找出答案?

我正在使用C#和OBA。

1 个答案:

答案 0 :(得分:1)

我不是C#人,但您当然应该能够获得您正在寻找的信息。所以下面的例子是VBA,但你应该在C#中使用所有相同的方法。

如我在OP的评论中提到的那样澄清:

  • Excel Workbook在任何给定时间只有一个ActiveSheet
  • 工作簿打开时所有工作表都“打开”(但只有其中一个是ActiveSheet

要确定工作簿中有多少张,请使用Count集合的Worksheets属性:

w = ActiveWorkbook.Worksheets.Count

确定活动工作表的名称:

sName = ActiveWorkbook.ActiveSheet.Name

如果您有多个打开的工作簿,并希望在每个工作簿中获取活动工作表的名称(这只是分配给一个字符串,但可能我会将它们存储在一个数组中,以便我以后可以引用它们,如果需要):

For each wb in Excel.Application.Workbooks
    sName = wb.ActiveSheet.Name
Next

如果要在所有工作簿中存储所有工作表的名称,您可以执行相同操作,或嵌套另一个For/Next

For each wb in Excel.Application.Workbooks
    For each ws in wb.Worksheets
        sName = ws.Name
    Next
Next