如何在VBA中实现“不再显示此消息”复选框?

时间:2016-07-14 16:34:29

标签: vba excel-vba excel

我为自己的工作开发了一个宏,它会自动生成一个我们每天必须交出的报告。宏提示用户提供我们的银行报告(.CSV格式)和我们的会计系统报告(Great Plains - 还.CSV)。宏将获取这两个文件,创建一个新工作簿,将它们粘贴到两个单独的工作表中并计算差异并提醒用户。

执行此操作后,用户将发布GP的所有付款,以锁定我们在相关日期收到的任何存款。这个宏已经将我们的手动过程改为仅数字(我们曾经在手动创建后打印报告,现在宏将它保存到我们的网络驱动器上,所以我们不再需要关闭文件,包括已发布的内容')

由于这是一个新流程,我还创建了一个MsgBox来提醒用户将所有帖子保存到特定的文件路径。这适用于那些不熟悉该过程的人。我希望它允许用户选中一个方框Never show this message again,因此当他们下次运行报告时,该消息将不会显示。

我假设这样做,我必须将邮件从MsgBox转换为UserForm。宏(模板)文件保存在网络驱动器上,而不是特定的机器上。

我的问题:有没有办法保存用户的输入,或者保存设置到该特定的计算机?有没有办法调用机器的信息并将信息保存到列表中,或将设置保存到该机器?

提示:

MsgBox "STOP!" & vbCr & vbCr & _
    "When prompted to print upon closing the Bank Deposit screen, deselect " & _
    "the " & Chr(34) & "Print" & Chr(34) & " option and select the " & _
    Chr(34) & "File" & Chr(34) & " option. Save the file as a " & _
    "Comma-delimited file in the necessary file on the accouting drive.", _
    vbCritical, "Posting in Great Plains"`

1 个答案:

答案 0 :(得分:4)

您可以将用户选择存储在注册表中。

以下是一个示例,您可以在此处重新编写代码。

Sub test()

    '/ Check if setting already exists
    If GetSetting("Test_App", "Show", "MsgBox") <> "Yes" Then
        '/ Show the message box
        If MsgBox("Don't Show this to me again..", vbYesNo + vbCritical, "Test") = vbYes Then
            '/ Save the setting in registery
            SaveSetting "Test_App", "Show", "MsgBox", "Yes"
        End If
    End If


End Sub
相关问题