以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]点击保存按钮出现未保存  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69072)

--  作者:monvzhilei
--  发布时间:2015/5/29 17:41:00
--  [求助]点击保存按钮出现未保存

Excel报表,一旦使用代码生成报表,就老是出现让我保存,不保存,取消按钮。 

 但是点击保存按钮,就出现未保存 对话框。如图所示。不知道如何解决。 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:monvzhilei
--  发布时间:2015/5/29 17:43:00
--  

具体代码是:

  

  

For Each  s As String In DataTables("条件").getValues("班级名称")

Dim Book As New XLS.Book(ProjectPath & "Attachments\\学籍卡.xls") \'打开模板
Dim fl As String = ProjectPath & "Reports\\" & s & ".xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,9).Value = "<[班级名称] = \'" & s &"\'>"
Book.Build() \'生成报表
Book.Save(fl)
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.Cells
rg.ShrinkToFit = True
App.Visible = False

app.quit
Next

 

 

这个代码可以将条件表里面所有的条件值都生成报表,但是一旦生成一个报表,就出现那个保存,不保存,取消  对话框。 很烦很烦。 最好是自动就保存好。这样就完美 了。

[此贴子已经被作者于2015/5/29 17:44:21编辑过]

--  作者:大红袍
--  发布时间:2015/5/29 17:45:00
--  
Dim App As New MSExcel.Application
For Each  s As String In DataTables("条件").getValues("班级名称")
   
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\学籍卡.xls") \'打开模板
    Dim fl As String = ProjectPath & "Reports\\" & s & ".xls"
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Sheet(1,9).Value = "<[班级名称] = \'" & s &"\'>"
    Book.Build() \'生成报表
    Book.Save(fl)
   
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    Dim Rg As MSExcel.Range = Ws.Cells
    rg.ShrinkToFit = True
    App.Visible = False
    wb.Save
Next
app.quit

--  作者:monvzhilei
--  发布时间:2015/5/29 18:22:00
--  

这个代码运行以后,出现这个出错对话框。

 


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/5/29 18:23:26编辑过]

--  作者:monvzhilei
--  发布时间:2015/5/29 18:36:00
--  

我自己猜测,可能就是无法保存生成的报表导致。

 我将生成的报表打开,就出现如下对话框。

  


图片点击可在新窗口打开查看此主题相关图片如下:4.png
图片点击可在新窗口打开查看

 

 

 

而且很奇怪的是,即使生成了一个报表,你要另存为,或者保存。都是无法成功的。 

 一旦不保存以后,  就会出现缩小字体填充的功能消失。

[此贴子已经被作者于2015/5/29 18:38:45编辑过]

--  作者:大红袍
--  发布时间:2015/5/29 18:39:00
--  
 你看看 任务管理器 那里,把所有的excel.exe进程杀死
--  作者:monvzhilei
--  发布时间:2015/5/29 18:39:00
--  

我在任务管理器里面。已经将excel.exe杀死的。

 

 当然你打开报表。杀死excel.exe。那么这个报表也关掉了。

 

再重新打开报表。那么缩小字体填充功能也消失了。

[此贴子已经被作者于2015/5/29 18:40:56编辑过]

--  作者:sloyy
--  发布时间:2015/5/29 18:42:00
--  
excel没有退出内存,,应该是前面错误的代码导致退出后,内存仍有excel模块在运行,重启一次电脑吧
--  作者:monvzhilei
--  发布时间:2015/5/29 18:50:00
--  

问题是这样的:

       出现这样无法保存的问题,我是一直就存在的。电脑重新启动,那是不知道多少次了。至少每天肯定要关电脑的吧。第二天也是这样的问题。 我只是一直没有来问。   但是心头老是被这样的问题困扰着,感觉很不舒畅。自己也想不明白。特来问问。 


--  作者:monvzhilei
--  发布时间:2015/5/29 18:52:00
--  

wb.Save

 

 

 

这个wb.save 代码一旦加入,就是无法将条件表里面所有的班级输出,只能生成一个班级的报表。 也不知道为什么。代码是完全准确的。 就是想不明白。 

    取消wb.save。 就是可以生成所有报表的。奇怪!