我有 2 个工作簿“StudentID”和“Student”。
在“StudentID”一书中,A 列的每一行都有一个 ID 列表。在“Student”中,工作簿“StudentID”中列出的每个学生 ID 都有标签。
单击学生 ID 时,我需要该 ID 的特定工作表才能在“学生”中打开。
这是用 VBA 编写的。
无论如何,我想不出要启用此功能。
任何帮助,将不胜感激。
就您不包含任何代码而言,我知道您所需要的只是一些开始的想法。
在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
有了这个小小的帮助,您应该不会发现编写自己需要的所有内容有任何问题。
Varocarbas 已经给了你选择的提示。稍后我可以告诉你如何循环遍历工作表,以下代码是用 C# 完成的。
foreach (Excel.Worksheet sheet in workbook.Sheets)
{
workbook.Activate();
if(sheet.Name="your specific selected row")
{
sheet.Activate();
}
}
如果你没有用 C# 得到它,你可以在这里得到 VB.NET 代码:
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 的工作表。