在另一个工作簿中打开工作表

时间:2013-07-18 03:35:13

标签: excel vba

我有2本工作簿" StudentID"和#34;学生"。

在书中#34; StudentID"在A列的每一行都有一张带有ID列表的表单。 在"学生"为工作簿中列出的每个学生ID标注了工作表" StudentID"。

点击学生证时,我需要在"学生"中打开该ID的特定工作表。

这是用VBA写的。

无论如何我无法想到这个。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

至于你没有包含任何代码,我明白你所需要的只是一些想法。

StudentID(。xlsm或任何其他支持宏的扩展程序)中,您必须依赖于特定工作表的SelectionChange事件(在Microsoft Excel Objects下,该文件称为你要跟踪的工作表,也就是说,你必须写一些类似的东西:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If (Not IsEmpty(Selection.Value)) Then
        On Error Resume Next
        'Selection.Value -> content of the selected cell, that is, ID
        'Here you have to write your code to open the corresponding worksheet in the Student workbook
    End If
End Sub

通过这个小帮助,您不应该发现任何问题来编写您自己所需的全部内容。

答案 1 :(得分:0)

Varocarbas已经给你一个选择提示。 我可以告诉你如何在以后循环工作表,下面的代码在C#中完成。

foreach (Excel.Worksheet sheet in workbook.Sheets)
{
     workbook.Activate();
     if(sheet.Name="your specific selected row")
     {
            sheet.Activate();
     }
}

如果您没有使用C#,那么您将获得VB.NET代码:

http://www.developerfusion.com/tools/convert/csharp-to-vb/?batchId=bbd6bd81-5e7e-4341-8fb4-69830a87c654

类似VB的东西

Set excelApp = CreateObject("excel.application")
Set excelWrkbook = excelApp.WorkBooks.Add
Set excelSheet = excelWrkbook.WorkSheets(1)
excelSheet.Cells(1,1).Select //1,1 can be changed to be mapped on column A

现在使用Varocarbas的代码,C#和VB代码,您应该可以在所有代码之间建立链接,并且您应该可以从单元格A中单击 - >事件是否触发,能够比较工作表名称并根据StudentID激活工作表。