VBA自动化/监控/开发

时间:2018-02-05 22:07:57

标签: excel-vba automation monitoring analysis vba

我在我的部门担任EUC的协调员(超过50人和超过150个MS Excel宏用于控制和报告)。为了保持对宏的使用和测量工具性能的良好跟踪,我在每个工作簿中添加了一个简单的代码,用于收集使用数据(打开/关闭工作簿的人员和时间,宏执行某些任务需要多少等等) ...)。代码非常简单,它收集公共变量中的所有数据,在工作簿结束之前,它将变量的内容保存到文件夹中的.txt文件中。

Option Explicit

Dim info_data as String

Sub check_point(x as integer)
Select x
 Case 0
 Call WBK_close
 Case 1
 Call WBK_open
 Case 2
 Call WBK_main_start
 Case 3
 Call WBK_main_end
End Select
End Sub

Private Sub WBK_close()
 info_data = info_data & "WBK Close;" & Now()
 Open myFile For Output As #1
 Print #1, info_data
 Close #1
End Sub

Private Sub WBK_open()
 info_data = "WBK Open;" & Now() & vbNewLine
End Sub

Private Sub WBK_main_start()
 info_data = "WBK Main Start;" & Now() & vbNewLine
End Sub

Private Sub WBK_main_end()
 info_data = "WBK Main End;" & Now() & vbNewLine
End Sub

我在代码中的某个点使用check_point sub来进行记录。

有时会发生一些错误,特别是当其他宏也写入文本文件时。或者,当纯文本代码使用Sub语句退出End时,删除保存到info_data的所有数据。 因此,我想知道是否有更聪明的方法来收集MS Excel使用数据(其他代码,加载项,使用其他编程语言,替代数据存储方式(不是txt))。

2 个答案:

答案 0 :(得分:2)

问题是他们有多个工作簿一次打开,每个宏都在运行吗?每个宏都试图写入文本文件?如果是这种情况,那么写入数据库(位于Access DB的网络的SQL Server)?数据库消除了多个并发用户问题,也意味着您的所有数据已经​​在一个地方(而不是您定期从他们的计算机收集文本文件)。

如果您写入数据库,他们当然需要在您的域名上。也许这并不总是可行的。但也许那些他们不在域上的情况下,失去跟踪是可以接受的。或者,您可以在这些情况下写入专用文本文件,然后在恢复域连接后,将您需要的任何信息写入数据库。

答案 1 :(得分:1)

您可以使用Azure Application Insights在线实时跟踪VBA项目(Excel和Access)的使用情况,性能和错误跟踪。 它使用一种叫做VBA遥测的小工具。

如果您没有Microsoft Azure帐户,则可以创建并使用免费帐户 几天前,我创建了一个关于如何做到这一切的Udemy课程。
这是一个快速,短期的课程(30分钟),在第一个24小时,有2400多人注册。 您可以观看此课程的预览,看看是否适合您。

本课程的链接:
VBA Application & Usage Monitoring Online with Azure cloud-Udemy course

希望这有帮助,
达沃尔

相关问题