【问题标题】:Excel VBA - Password prompt after Form Show and Import DataExcel VBA - 表单显示和导入数据后的密码提示
【发布时间】:2009-08-09 17:56:00
【问题描述】:

我有这个受密码保护并显示表单的宏。最近我添加了从 excel 导入数据的代码,每次关闭它时都会要求我输入密码 - 我可以通过它取消但我想让它消失,我看不出它会出现的合理原因。

我已经分离出了导致这个问题的几行

Sub a()    

UserForm1.Show
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0" & _
    ";Data Source=" & "C:\Book1.xls" & _
    ";Extended Properties='Excel 8.0; IMEX=1'" & _
    ";Persist Security Info=False"
Set objRSGlobal = CreateObject("ADODB.Recordset")
objRSGlobal.Open "select * from [Sheet1$]", strConnString
objRSGlobal.Close
Set objRSGlobal = Nothing
End Sub

这进入模块 1。我有一个名为 UserForm1 的空白表单。我使用密码锁定代码(也用于查看)并将所有内容保存在 Book1.xls 中。

现在我打开文件,按 Alt+F8 运行宏,关闭表单,然后关闭文件,出现密码提示。我不明白它为什么会出现以及如何让它消失。

提前致谢!!

注意 - 作为记录,如果我只是显示表单并通过 UI 执行导入数据(数据 > 导入外部数据 > 导入数据),也会发生这种情况

  • 更新 - 看起来只有当我从打开的同一个文件导入时才会发生这种情况。

【问题讨论】:

  • 我不知道你的叙述是什么。有不止一种形式吗?是否有宏和模块?密码正在/正在保护哪些项目?

标签: excel vba forms import passwords


【解决方案1】:

这看起来像 Microsoft 知识库文章 KB280454 中描述的问题 http://support.microsoft.com/kb/280454

我在使用 .NET 和 COM 互操作时遇到了这个问题。文章建议确保发布 COM 引用。在我的情况下,我无法成功地做到这一点。我尝试将 Excel 中的命令委托给非 VBA 密码保护的工作簿,从而减少了这种情况的发生,最后设置了一个进程来杀死我的应用程序(使用 Xtreme Prejudice,使用第二个进程)。在这个问题的情况下,这些似乎都不合适,但可能需要类似的组合。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    我遇到了同样的问题,它与打开的 Excel 工作簿(包括当前工作簿)中的 Excel/Jet 查询有关。以下 Microsoft kb article 描述了该问题。

    这个问题似乎在 Excel 2010 中得到了解决,尽管这对我没有帮助(因为我的客户仍在使用 Excel 2007)。一种方法是将数据保存到另一个工作簿中,在那里进行查询,然后将结果复制回原始工作簿,但这有点麻烦。

    【讨论】:

      猜你喜欢
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      相关资源
      最近更新 更多