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

使用vbscript在Excel用户窗体中输入数据并继续,excel,vba,vbscript,userform,Excel,Vba,Vbscript,Userform,提前感谢您考虑我的帖子。 我有一个Excel文件,其中包含一个userform,其中有一个用户名和密码字段,每次打开Excel时都会出现。此外,一些工作表也受到保护。 由于不熟悉VBScript,我想知道如何使用它来: 在后台打开工作簿 在excel用户表单中输入用户名和密码 从userform中单击submit按钮 运行模块1中的刷新所有宏 到目前为止,我能够在后台打开工作簿并在没有userform的情况下对其进行测试,但由于我无法输入用户名和密码,因此无法继续 Dim oExcel Set

提前感谢您考虑我的帖子。 我有一个Excel文件,其中包含一个userform,其中有一个用户名和密码字段,每次打开Excel时都会出现。此外,一些工作表也受到保护。 由于不熟悉VBScript,我想知道如何使用它来:

  • 在后台打开工作簿
  • 在excel用户表单中输入用户名和密码
  • 从userform中单击submit按钮
  • 运行模块1中的刷新所有宏
  • 到目前为止,我能够在后台打开工作簿并在没有userform的情况下对其进行测试,但由于我无法输入用户名和密码,因此无法继续

    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
    请在继续之前检查此项

    Second:您应该在vbscript中添加此指令:
    oWorkbook.Unprotect 1234
    以取消对工作簿的保护(默认情况下,我在Excel文件中找到的密码是
    1234

    第三条:我在错误恢复下一条指令中添加了
    ,以便在错误发生时捕获错误



    userform包含以下内容:用户名文本框、密码文本框、提交和取消单击按钮。我不知道应该如何以及在哪里放置代码,以便在脚本运行时阅读上面的信息:(你能上传你的Excel文件吗?并分享它的链接吗?回答得很好。谢谢@Hackoo。我会测试脚本并返回给你。
    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