在创建新的Excel工作簿并在满足条件时创建新工作表时运行总计

时间:2014-05-07 12:32:31

标签: excel vba excel-vba

这是一个相当长而复杂的问题,我会尽力解释我需要做什么。

这适用于飞行部门。让我们从我拥有的东西开始,我们使用电子表格来跟踪飞行时间,着陆和发动机循环。目前我们正在使用两个电子表格,一个是我们的“旅行”表,另一个是我们的航班“日志”。

旅行表可以是一到三个工作表长,用于跟踪旅行期间飞行的每个航班。这次旅行的范围可以从一个航班(航程)到25个航班(航段),范围从1天到21天不等。旅行的每一天都是它自己的Log#,即。如果一天有3个航班,它们都共享相同的Log#。这次旅行#不合适,一次旅行可能是#672,下一次是#264543,下一次#689。创建日期是唯一可用于按顺序跟踪旅行工作簿的日期。

飞行日志是FAA要求的飞机日志。 Log#按顺序运行,即。 459,460,461。飞机飞行的每都需要一张飞行日志。飞行日志中需要一些但不是所有旅行表中的信息。最重要的是时间,着陆和周期按顺序计算。

现在这就是我要找的东西。我想要一个电子表格,其中包含我们现在拥有的三张旅行表工作表,但是当输入航班(航段)时,它会创建第4张工作表,该工作表将成为航班日志。当天飞行的每条腿会将其信息传输到该航班日志。现在,当我们在新的一天飞行时,将为新的一天的飞行日志创建第5个工作表。时间,着陆和周期总计需要从前一天的飞行日志转移,以及旅行表所需的其他信息,就像之前的日志一样。依此类推,直到TRIP结束。

现在这里是真正棘手的部分,当我们开始一个新的TRIP并为该行程创建一个新的工作簿时,我需要将上一次行程中的总计转移到新的工作簿,这样一个合法的,运行的总计飞机时间可以保留。

基本上,我想要做的是,为我们现在使用的每次旅行拿两个单独的工作簿,并将它们塞进一个,但每次创建一个新的旅行工作簿时,我需要从创建的最后一个工作簿中获取信息保持总计。

本论坛的新内容,如果有办法附上我们现在使用的两本工作簿的副本,请告诉我。看看我们正在使用的东西可能会使这一点更加清晰。

谢谢!!! PQ

1 个答案:

答案 0 :(得分:0)

听起来你有一个使用Excel的工作解决方案,这是非常好的。通常,最大的挑战是确定流程及其所有分支。此外,您似乎只是希望使您的解决方案更具常规性和可持续性。

虽然制作一个支持宏的Excel文档听起来是正确的方法,但您要求的功能更适合关系数据库。并不是说它无法完成,但实施基于Excel的解决方案将变得非常混乱。我认为关键的区别在于维护旅行表和日志表之间的逻辑联系。

例如,如果我理解正确,您将不得不创建多个Excel文件,并且他们将需要一个命名约定,以便计算机知道要查找哪些。这会将数据暴露给最基本的错误,例如错误地重命名或移动文件。如果你是唯一一个维护系统的人,那么也许这不是一个问题,但经验告诉我,很多努力都可以立即被打开文件和编辑它的东西所破坏。

这也意味着您必须维护一个"构建器"必须包含您开发的代码的文件。并不是每台机器都设置了宏,很多终端用户都会收到恐慌通知,这个文件中包含可能存在危险的宏...等等等等等等。"这意味着每个输出文件应该可以是无宏的。

相反,我建议使用MS-Access等关系数据库重新创建系统。您可以创建无限数量的记录/表,并使用任意数量的变量来维护逻辑链接(按日志#,按日期,按航班#等)。您还可以设置规则,以便以一致的方式记录和报告数据。如果您有需求和编程专业知识,VBA宏也可以引入基于MS-Access的解决方案。

最后,所有数据都可以轻松保存在一个中央* .mdb文件中,这比几个重叠的Excel文件更容易维护和备份。