以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]Delete方法不起作用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28666)

--  作者:sunsenfeng
--  发布时间:2013/2/8 1:08:00
--  [求助]Delete方法不起作用

各位老师们,Excel的工作表Delete不起作用,请帮忙看一下问题在哪里

 

\'取得订单编号
Dim r As Row =Tables("订单").Current
Dim no As String =r("订单编号") & "-" & r("序号")

Dim Book As New XLS.Book(ProjectPath & "Attachments\\订单打印模板.xls")
Dim file As String = ProjectPath & "Temp\\订单-" & no & ".xls"
Book.Build() \'生成细节区
Book.Save(file) \'保存工作簿

Dim order As String = ProjectPath & "Reports\\订单.xls"

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(File)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim WbOrder As MSExcel.WorkBook = App.WorkBooks.Open(Order)
Dim id As Integer
For Each s As MSExcel.WorkSheet In WbOrder.WorkSheets
    If s.Name=no Then \'如果存在同名表格,删除先
        id=s.Index
        Messagebox.show("Delete:\'" & id & "\':" & no )
    End If
Next
WbOrder.WorkSheets(id).Delete ‘这一行并没有删除表格
WbOrder.Save
With WbOrder.WorkSheets \'设定目标工作簿
    Ws.Copy(After:=.Item(.Count))\'复制到最后面
    \'WbOrder.WorkSheets(.Count).Name=no \'修改工作表名称
End With

App.DisplayAlerts=False \'取消系统警告提示,直接退出Excel
Wb.close
WbOrder.Save
App.Quit

 


--  作者:sunsenfeng
--  发布时间:2013/2/8 9:21:00
--  

林老师起床了没,救急

 


--  作者:sunsenfeng
--  发布时间:2013/2/8 9:26:00
--  
这段代码的目的是把生成的Excel表复制到一个汇总工作簿里,如果已经有了重名的表,比如XS1301001,就先删除,然后再把复制表修改名称到XS1301001
--  作者:sunsenfeng
--  发布时间:2013/2/8 10:16:00
--  

 

App.DisplayAlerts=False \'取消系统警告提示,直接退出Excel

WbOrder.WorkSheets(id).Delete ‘这一行并没有删除表格
WbOrder.Save
With WbOrder.WorkSheets \'设定目标工作簿
    Ws.Copy(After:=.Item(.Count))\'复制到最后面
    \'WbOrder.WorkSheets(.Count).Name=no \'修改工作表名称
End With

App.DisplayAlerts=False \'取消系统警告提示,直接退出Excel
原因找到,需要在删除之前关闭警告,因为在删除工作表之前,系统会弹窗,如不关闭,默认不删除