vba - 我应该如何存储一个变量,以便在 excel 中不同的 VBA 代码调用中使用它?

标签 vba excel

当有人打开工作簿时,我有一个密码验证步骤。我有多个用户将访问此工作簿,并且基于此我分配了一个名为 user 的变量来确定其中谁在使用它。

Public pwd, user As String
Public graccess As Integer

Private Sub workbook_open()
graccess = 0
Do
pwd = InputBox("Please provide your password", "Authentication")
If pwd = "access" Then
    user = "GTS"
    graccess = 1
ElseIf pwd = "enter" Then
    user = "AP"
    graccess = 1
Else
    MsgBox ("failed to authenticate")
    pwd = ""
    graccess = 0
End If
Loop Until graccess = 1
End Sub

现在,当这个用户开始在 Excel 工作表上工作时,我需要检查用户变量以检查哪个用户正在访问工作表。由于此代码现在将出现在 *worksheet_change* 事件中,因此它是一个不同的子例程,它将在前一个代码完成运行并且不再使用后运行。

所以我的问题是
我是否无法在变量中看到用户,因为我的 workbook_open 事件已经结束并且代码已停止运行?
我能做些什么来确保变量不会失去它的值(value)?

谢谢你的耐心:)

最佳答案

两件事情:

  • 修复 DIM

    暗淡密码为字符串,用户为字符串
  • 将 DIM 移至标准模块
  • 关于vba - 我应该如何存储一个变量,以便在 excel 中不同的 VBA 代码调用中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18658697/

    相关文章:

    excel - 与 .xla 加载项一起提供帮助内容的最佳方式

    java - 如何在Java中加载和使用第三方.dll的功能

    vba - 引用并打开外部 xlsm 库时强制退出

    excel - 如何将相应的值添加到右列(我有一个代码,但速度不够快)

    Java 输出流到工作簿中

    vba - VBA中Long数据类型的误解

    excel - 用户窗体工具箱附加控件对话窗口未显示

    python - 如何使用 python 在 xlsxwriter 上进行编码

    python - Openpyxl - 我可以使用 Openpyxl 创建水平条形图吗?

    ms-access - 如何在 Access 的表单中引用嵌入的 PowerPoint 或 Excel 文件?