使用vbscript在Excel用户窗体中输入数据并继续

问题描述

预先感谢您考虑我的帖子。 我有一个Excel文件,其中包含一个用户窗体,该窗体具有每次打开Excel时都会出现的用户名密码字段。此外,某些工作表是受保护的。 我是vbscripting的新手,我想知道如何将其用于:

  1. 后台打开工作簿
  2. 在excel用户表单中输入用户名密码
  3. 点击用户表单中的“提交”按钮
  4. 运行在Module1中找到的“刷新全部”宏

到目前为止,我已经能够在背景图中打开工作簿并在没有用户表单的情况下对其进行测试,但是由于无法输入用户名密码,因此无法继续进行操作。

Dim oExcel
Set oExcel = CreateObject("Excel.Application") 

oExcel.Visible = False
oExcel.displayAlerts = False
oExcel.AskToUpdateLinks = False
oExcel.AlertBeforeOverwriting = False

Set oWorkbook = oExcel.Workbooks.Open("filepath\file.xlsx")
oWorkbook.RefreshAll
oWorkbook.Save

MsgBox "Excel file has been refreshed",VBOKOnly

oExcel.Quit
Set oWorkbook = nothing
Set oExcel = nothing

解决方法

首先: 您的文件扩展名为.xlsm,而不是.xlsx,请先检查此内容!

第二个: 您应该在vbscript中添加此说明:oWorkbook.Unprotect 1234以取消保护工作簿(我发现的默认密码是{{1} }在您的Excel文件中)

第三条: 我添加了1234指令以在发生错误时捕获错误


On Error Resume Next