我有一个 VSTO 应用程序,我在一个工作簿中打开多个工作表。我有一种情况,我必须知道在任何给定情况下打开了哪些所有工作表。有什么办法可以找出来吗?
我正在使用带有 OBA 的 C#。
我有一个 VSTO 应用程序,我在一个工作簿中打开多个工作表。我有一种情况,我必须知道在任何给定情况下打开了哪些所有工作表。有什么办法可以找出来吗?
我正在使用带有 OBA 的 C#。
我不是 C# 人,但您当然应该能够获得您正在寻找的信息。因此,以下示例是 VBA,但您应该在 C# 中使用所有相同的方法。
正如我在对 OP 的评论中提到的那样澄清:
ActiveSheet
Excel 工作簿在任何给定时间只有一个,并且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
等等。