【问题标题】:Use vbscript to input data in Excel userform and proceed使用 vbscript 在 Excel 用户窗体中输入数据并继续
【发布时间】:2020-08-13 14:28:31
【问题描述】:

提前感谢您考虑我的帖子。 我有一个 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

【问题讨论】:

  • 用户表单包含以下内容:用户名文本框、密码文本框、提交和取消单击按钮。我不知道应该如何以及在何处放置代码,以便在脚本运行时读取上述信息:(
  • 你能上传你的 Excel 文件吗?并分享它的链接?

标签: excel vba vbscript userform


【解决方案1】:

首先:您的文件具有.xlsm 而不是.xlsx 的扩展名,请在继续之前检查此内容!

第二:您应该在 vbscript 中添加此指令:oWorkbook.Unprotect 1234 以取消对 WorkBook 的保护(我在 Excel 中找到的默认密码是 1234文件)

第三:我添加了On Error Resume Next 指令以在发生错误时捕获错误


Option Explicit
Dim Title,oExcel,oWorkbook
Title = "Use vbscript to input data in Excel userform and proceed"
Set oExcel = CreateObject("Excel.Application") 
oExcel.Visible = False
oExcel.DisplayAlerts = False
oExcel.AskToUpdateLinks = False
oExcel.AlertBeforeOverwriting = False
On Error Resume Next
Set oWorkbook = oExcel.Workbooks.Open("C:\Stack\Data.xlsm")
oWorkbook.Unprotect 1234 ' The password to unprotect the WorkBook is 1234
oWorkbook.RefreshAll
oWorkbook.Save
If Err Then
    MsgBox "Error Source : " & Err.Source & vbCrlf &_
    "Error Description : "& Err.Description,vbCritical,Title
Else
    Msgbox "Excel file has been refreshed",vbInformation,Title
End If
oExcel.Quit
Set oWorkbook = Nothing
Set oExcel = Nothing

【讨论】:

  • 优秀的答案。
  • 谢谢@Hackoo。我会测试脚本并回复你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
相关资源
最近更新 更多