Excel代码从另一个工作表返回特定值

时间:2013-12-10 22:34:56

标签: arrays excel vba

我有一个excel文件,其中列出了他们拍摄的多个学生和课程以及拍摄时间。设置工作表,以便学生按行列出,课程与日期一起列在列中。我在单独的工作表上创建了一个日历,以显示学生及其课程的快照视图。我正在努力将数据提供给日历。基本上,逻辑是我需要搜索(或循环)一个名为StatusArray的非相邻单元格数组,如果存在一个值,那么我需要它来返回学生ID和相关的课程名称。踢球者是每个学生有时会有多个课程,所以我需要确保它返回所有这些课程,每个课程都在新的一行。状态列中都包含公式,因为它们是根据输入的日期生成的。

实施例: 工作表1列 - 学生ID,姓名,地址,课程状态,开课日期,结束日期,年级,课程状态,开课日期,结束日期,年级......

我需要它来阅读课程状态列和(当不是空白时)返回J中状态列的状态标题和日历工作表C列中的学生ID。奖励,如果它还返回姓名,地址,电话和评论!

我完全不知道如何做到这一点!

1 个答案:

答案 0 :(得分:0)

蛮力方法:假设您有4个重复的“状态/开始/结束/等级”信息块。我理解4门课程是所有学生中最多的,但有些学生的数据填充在三个或更少的块中。

首先,仅复制具有学生ID,姓名和数据的数据区域。地址。将其粘贴在现有学生列表的正下方。重复,直到您总共有4组学生信息。第一组是您的原件,然后是下面的3个冗余副本。

接下来,剪切最右侧(第4个)状态块等。信息,并将其粘贴到学生的第一个重复部分旁边。确保将粘贴状态列与第一个块的状态列对齐。重复此练习两次,删除最右边的状态块等,然后粘贴到下一部分冗余学生信息旁边。

您现在应该有一个只有7列数据的表格:前三个是学生ID,名称&地址,和以前一样。接下来的四列是课程状态,开始,结束和年级。现在,您应该能够简单地过滤“状态”列以查找您要查找的内容。

P.S。我通常不建议使用蛮力,但在这种情况下,如果没有更多关于布局的细节,就不可能编写更优雅的代码。假设您没有大量数据需要操作并且假设您不需要经常执行此操作,则此解决方案应该快速简便。