-3

我有 2 个工作簿“StudentID”和“Student”。

在“StudentID”一书中,A 列的每一行都有一个 ID 列表。在“Student”中,工作簿“StudentID”中列出的每个学生 ID 都有标签。

单击学生 ID 时,我需要该 ID 的特定工作表才能在“学生”中打开。

这是用 VBA 编写的。

无论如何,我想不出要启用此功能。

任何帮助,将不胜感激。

4

2 回答 2

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

有了这个小小的帮助,您应该不会发现编写自己需要的所有内容有任何问题。

于 2013-07-18T07:19:29.693 回答
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 代码,你应该可以做所有之间的链接,你应该可以点击 Cell A -> event trigger or not 并能够比较工作表名称并激活根据 StudentID 的工作表。

于 2013-07-18T08:42:25.093 回答