读书人

vb文件夹的删除有关问题

发布时间: 2012-02-11 09:51:35 作者: rapoo

vb文件夹的删除问题
谢谢大家的帮忙,vb的打印问题已经解决了,但今天又产生了新的问题,文件夹删除不了
源码如下:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim Fso
Dim Fsys

Private Sub Command1_Click()
'\\\\\\\创建一个临时文件夹dy[url=]\\\\\\\[/url]
Dim Fso
Set Fso = CreateObject("scripting.filesystemobject")
Fso.CreateFolder ("c:\dy") (因第一次没删除,第二次运行到此错)

'\\\\\\\将模板拷贝至临时文件夹并打开[url=]\\\\\\\[/url]
Set xlsApp = Excel.Application
xlsApp.Visible = False
Set xlsBook = xlsApp.Workbooks.Open("C:\WINDOWS\模板.xls")
Set Fso = CreateObject("scripting.filesystemobject")
Fso.CopyFile "C:\WINDOWS\模板.xls", "C:\dy\检验单.xls"
Set xlsBook = xlsApp.Workbooks.Open("C:\dy\检验单.xls")

'\\\\\\\以下是基本信息填写[url=]\\\\\\\[/url]
xlsApp.Sheets(1).Cells(4, 3) = Text1.Text
xlsApp.Sheets(1).Cells(5, 8) = Text2.Text
xlsApp.Sheets(1).Cells(5, 4) = Text3.Text
xlsApp.Sheets(1).Cells(10, 5) = Text4.Text
xlsApp.Sheets(1).Cells(5, 11) = Combo1.Text
xlsApp.Sheets(1).Cells(4, 11) = Combo2.Text
xlsApp.Sheets(1).Cells(4, 8) = Combo3.Text
xlsApp.Sheets(1).Cells(10, 11) = Combo4.Text
xlsApp.Sheets(1).Cells(6, 5) = Combo5.Text
xlsBook.Close (True)
xlsApp.Quit
End Sub
Private Sub Command3_Click()

'\\\\\\\第一份[url=]\\\\\\\[/url]
If Check1.Value = 1 Then
'\\\\\\\将临时文件夹的检验单再拷贝一份叫具体名称[url=]\\\\\\\[/url]
Set xlsApp = Excel.Application
xlsApp.Visible = False
Set xlsBook = xlsApp.Workbooks.Open("C:\dy\检验单.xls")
Set Fso = CreateObject("scripting.filesystemobject")
Fso.CopyFile "C:\dy\检验单.xls", "C:\dy\血常规.xls"
Set xlsBook = xlsApp.Workbooks.Open("C:\dy\血常规.xls")

'\\\\\\\填写具体检验名称[url=]\\\\\\\[/url]
Set xlsApp = Excel.Application
xlsApp.Visible = False
Set xlsBook = xlsApp.Workbooks.Open("C:\dy\血常规.xls")
xlsApp.Sheets(1).Cells(9, 3) = "血常规"
xlsApp.Sheets(1).Cells(8, 3) = "血"
xlsBook.Close (True)
xlsApp.Quit

'\\\\\\\打印填好的检验单[url=]\\\\\\\[/url]
Set ExcelxlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set ExcelxlBook = ExcelxlApp.Workbooks.Open("C:\dy\血常规.xls") '打开已存在的ExcEL工作薄文件
ExcelxlApp.Visible = False '设置EXCELS对象可见(或不可见)
Set ExcelxlSheet = ExcelxlBook.Worksheets("sheet1")
ExcelxlSheet.PrintOut
End If

'\\\\\\\第二份[url=]\\\\\\\[/url]
If Check12.Value = 1 Then
'\\\\\\\将临时文件夹的检验单再拷贝一份叫具体名称[url=]\\\\\\\[/url]
Set xlsApp = Excel.Application
xlsApp.Visible = False
Set xlsBook = xlsApp.Workbooks.Open("C:\dy\检验单.xls")
Set Fso = CreateObject("scripting.filesystemobject")
Fso.CopyFile "C:\dy\检验单.xls", "C:\dy\肝功能.xls"
Set xlsBook = xlsApp.Workbooks.Open("C:\dy\肝功能.xls")

'\\\\\\\填写具体检验名称[url=]\\\\\\\[/url]
Set xlsApp = Excel.Application
xlsApp.Visible = False
Set xlsBook = xlsApp.Workbooks.Open("C:\dy\肝功能.xls")
xlsApp.Sheets(1).Cells(9, 3) = "肝功能"
xlsApp.Sheets(1).Cells(8, 3) = "血"
xlsBook.Close (True)
xlsApp.Quit

'\\\\\\\打印填好的检验单[url=]\\\\\\\[/url]


Set ExcelxlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set ExcelxlBook = ExcelxlApp.Workbooks.Open("C:\dy\肝功能.xls") '打开已存在的ExcEL工作薄文件
ExcelxlApp.Visible = False '设置EXCELS对象可见(或不可见)
Set ExcelxlSheet = ExcelxlBook.Worksheets("sheet1") '问题出在这里,sheet1加双引
ExcelxlSheet.PrintOut
End If


End Sub
Private Sub Command4_Click()
Shell "cmd.exe /c taskkill /f /im excel.exe"
Shell "tskill excel"
Shell "cmd /c del c:\dy\*.xls /q", 0
Shell "cmd /c del c:\dy /q", 0
End Sub

Private Sub Form_Load()
Text4.Text = Date
End Sub
第一次运行是完全通过,但 c:\dy 并没有删除,里面还有文件,下次运行程序时就说实时错误,文件已存在
请大家看看,怎么修改?

谢谢!




[解决办法]
你调用了多次 Workbooks.Open(...),却有几次没调用close,文件还在使用中,当然删除不了!记住,Open和close成对出现!
[解决办法]
你的代码很牛X,我看着晕,Shell来操作文件你都能想得出来,呵呵!不过del命令不是用来删文件夹的,删文件用rd命令,即:
Shell "cmd /c del c:\dy /q", 0
改为
Shell "cmd /c rd c:\dy /q", 0

VB有自己的文件管理方法的,少用shell,这很不稳定;你代码中的的ExcelxlApp不停地打开退出,好像不费电一样!
....多找点资料来看看,Csdn中有很多这方面的例子的。好运!
[解决办法]
Shell "cmd /c del c:\dy /q", 0
改为
Shell "cmd /c rd c:\dy /q /s", 0

没有 /s 参数可能会失败

读书人网 >VB

热点推荐