Foxtable(狐表)用户栏目专家坐堂 → [求助]Delete方法不起作用


  共有7871人关注过本帖树形打印复制链接

主题:[求助]Delete方法不起作用

帅哥哟,离线,有人找我吗?
sunsenfeng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:599 积分:4188 威望:0 精华:0 注册:2011/12/21 11:25:00
[求助]Delete方法不起作用  发帖心情 Post By:2013/2/8 1:08:00 [只看该作者]

各位老师们,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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:599 积分:4188 威望:0 精华:0 注册:2011/12/21 11:25:00
  发帖心情 Post By:2013/2/8 9:21:00 [只看该作者]

林老师起床了没,救急

 


 回到顶部
帅哥哟,离线,有人找我吗?
sunsenfeng
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:599 积分:4188 威望:0 精华:0 注册:2011/12/21 11:25:00
  发帖心情 Post By:2013/2/8 9:26:00 [只看该作者]

这段代码的目的是把生成的Excel表复制到一个汇总工作簿里,如果已经有了重名的表,比如XS1301001,就先删除,然后再把复制表修改名称到XS1301001

 回到顶部
帅哥哟,离线,有人找我吗?
sunsenfeng
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:599 积分:4188 威望:0 精华:0 注册:2011/12/21 11:25:00
  发帖心情 Post By: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
原因找到,需要在删除之前关闭警告,因为在删除工作表之前,系统会弹窗,如不关闭,默认不删除


 回到顶部