首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA自动化/监控/开发

VBA自动化/监控/开发
EN

Stack Overflow用户
提问于 2018-02-06 06:07:57
回答 2查看 698关注 0票数 0

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

代码语言:javascript
复制
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来进行记录。

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

EN

回答 2

Stack Overflow用户

发布于 2018-02-06 07:34:47

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

如果你写一个数据库,他们当然需要在你的域上。也许这并不总是可能的。但也许那些他们不在域中的情况下,丢失跟踪是可以接受的。或者,您可以在这些情况下写入专用的文本文件,然后一旦域连接恢复,从那里写入您需要的任何信息到您的数据库。

票数 2
EN

Stack Overflow用户

发布于 2018-02-23 18:06:37

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

如果你没有Microsoft Azure帐户,可以创建并使用一个免费帐户。

几天前,我创建了一个关于如何做到这一切的Udemy课程。

这是一个快速、短暂的课程(30分钟),在最初的24小时内,就有2400+人员注册。您可以观看本课程的预览,看看这是否适合您。

本课程的链接:

VBA Application & Usage Monitoring Online with Azure cloud-Udemy course

希望这能帮上忙

达沃尔

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48632293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档