我已经有一个简单的程序,而不是将数据扫描到电子表格中以及时间戳,然后您可以通过保存更新数据,或者退出并退出并保存。VBS如果文件打开
我一直在坚持一天左右的唯一问题是解决电子表格已经打开的情况下的错误处理。我喜欢有这样的事情;
如果文件被打开,然后MSGBOX(“文件打开,关闭文件,然后重新启动”) WScript.Quit
Option Explicit
DIM oFs: Set oFs = CreateObject("Scripting.FileSystemObject")
DIM objExcel, strExcelPath, objSheet
DIM ib
DIM msg1
DIM msg2
strExcelPath = "c:\temp\Example.xls"
Set objExcel = CreateObject("Excel.Application")
objExcel.WorkBooks.Open strExcelPath
Set objSheet = objExcel.ActiveWorkbook.Worksheets(1)
DO
ib=inputbox("SCAN NAME, SCAN LOTS"&vbCrLf&"TO UPDATE,SCAN ""UPDATE."""&vbCrLf&"TO EXIT, SCAN ""QUIT.""","Picklot Passout Database")
IF ib="" THEN
msg1=MsgBox("You must scan either a NAME or LOT NUMBER."&vbCrLf&"If you want to exit, scan QUIT."&vbCrLf&"Click OK to continue.",vbokonly,"Cannot Insert Blank Data")
ELSEIF ib= "QUIT" OR ib= "quit" THEN
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
set objExcel = Nothing
Set oFs = Nothing
ELSEIF ib="update" OR ib="UPDATE" THEN
objExcel.ActiveWorkbook.Save
msg2=MsgBox("Update Complete.",vbokonly,"Database Updated")
ELSE
objSheet.Range("A2").EntireRow.Insert
objSheet.Cells(2, 1).Value = ib
objSheet.Cells(2, 2).Value=(now)
END IF
LOOP WHILE NOT ib="quit" AND NOT ib="QUIT"
您是否收到错误信息?在'objExcel.WorkBooks.Open strExcelPath'行?另一条线?请[编辑]您的问题并粘贴该信息。 – JosefZ 2015-04-05 17:03:54
不,但如果excel文件是由另一个用户或在同一台PC上打开,它会要求保存或覆盖数据,不管点击什么,它仍然不会保存。该脚本仅适用于未查看excel文件的情况,因此我试图找出一种方法让我知道它是否已打开并关闭它。 – 2015-04-05 17:53:15