首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb文件夹的删除有关问题

2012-02-11 
vb文件夹的删除问题谢谢大家的帮忙,vb的打印问题已经解决了,但今天又产生了新的问题,文件夹删除不了源码如

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 参数可能会失败

热点排行