我有2个工作簿“StudentID”和“Student”。在另一个工作簿中打开工作表
在“StudentID”一书中,列A的每一行都有一张ID列表。 在“学生”中,为工作簿“StudentID”中列出的每个学生ID都标有表格。
单击学生ID时,我需要该“ID”的特定工作表才能在“学生”中打开。
这是用VBA编写的。
无论如何我无法想到启用此功能。
任何帮助,将不胜感激。
我有2个工作簿“StudentID”和“Student”。在另一个工作簿中打开工作表
在“StudentID”一书中,列A的每一行都有一张ID列表。 在“学生”中,为工作簿“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
有了这个小的帮助,你不应该觉得写的所有东西被自己所需要的任何问题。
选择变化的好处。我正在寻找类似的东西。 – mike27015
@ mike27015传统上,我认为这些事件非常不可靠,但几周前Tim Williams证明我完全错了。 – varocarbas
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代码,你应该能够完成所有的链接,你应该能够单击单元格A - >事件触发器,并且能够比较表单姓名并根据StudentID激活工作表。
请不要这样做。这是一种可怕的方式来实现你正在做的任何事情。它不会缩放,它会很慢,它会在未来造成巨大的问题。请使用数据库。请使用其他编程语言。为了您的目的,请重新审视您的实施。 –