我在我们的 ERP 中运行一个 VBS 宏,它打开一个目标 Excel 文档并使用工作簿中的数据填充表单。该程序有效,但执行时间大约为 1 分半钟。
我将 sMsgBox 放置在脚本中的不同点,以查看延迟来自何处,整个脚本在大约 4 到 5 秒内执行,但是在任务管理器中查看活动进程时,我可以看到 Execl 仍然为 roughley 1 和半分钟,当它关闭时,ERP 应用程序会刷新并填充数据。脚本如下
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
Dim yr
yr = InputBox("Please enter the payroll year")
Dim wk
wk = InputBox("Please enter the payroll week")
Dim path
path = "K:\Accounting\Payroll\JE\" & yr & "\Hourly\WK " & wk & "\RZU Payroll Template.xlsx"
Function FileExists(FilePath)
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(FilePath) Then
FileExists=CBool(1)
Else
FileExists=Cbool(0)
End If
End Function
If FileExists(path) Then
Dim objExcel, objWorkbook, objSheet
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(path)
Set objSheet = objExcel.ActiveWorkbook.Worksheets(3)
Dim row
row = 3
Do While row <=28
val1 = objSheet.Cells(row,2).value
val2 = objSheet.Cells(row,4).value
val3 = objSheet.Cells(row,5).value
WshShell.SendKeys "{INSERT}"
WshShell.SendKeys val1
WshShell.SendKeys "{TAB}"
WshShell.SendKeys val2
WshShell.SendKeys "{TAB}"
WshShell.SendKeys val3
row = row + 1
Loop
objExcel.ActiveWorkbook.Close
objExcel.Workbooks.Close
objExcel.Application.Quit
Set objExcel = Nothing
Else
MsgBox("Your entries resulted in an invalid File Path. Please check the file location and try again")
End If
MsgBox(val1)
我相信我使用无效的代码来关闭 Excel 文件,我希望应用程序在命令执行后立即关闭,但情况似乎并非如此。
任何帮助将不胜感激