Foxtable(狐表)用户栏目专家坐堂 → 内部函数代码出错


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

主题:内部函数代码出错

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2015/6/11 18:08:00 [只看该作者]

wb 是模板,另存wb.SaveAs(FileSys.GetParentPath(file) & "\" & s)生成新的报表, 
这样另存的操作有30次,如果不用每次另存模板后,关闭模板,再打开模板.....,
如何做到打开模板后,操作完30次报表另存后,再一次关闭模板,不用重复30次打开,关闭可以节省很多时间?
wb.close
App.Quit

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2015/6/11 18:53:00 [只看该作者]

wb.SaveAs(FileSys.GetParentPath(file) & "\" & s)
另存后,原来的模板就改变了,如何保存原来的模板又能另存?
请老师教下?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/11 19:15:00 [只看该作者]

wb.Save

FileSys.CopyFile(file, FileSys.GetParentPath(file) & "\" & s, True)


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2015/6/11 19:41:00 [只看该作者]

wb.Save原来的模板就改变了,如何保存原来的模板

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/11 19:49:00 [只看该作者]

以下是引用发财在2015/6/11 19:41:00的发言:
wb.Save原来的模板就改变了,如何保存原来的模板

 

那你思路就要变一下啊。

 

1、先把excel文件拷贝一份出来;

 

2、打开新的excel,对它进行修改保存


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2015/6/11 21:19:00 [只看该作者]

这样不是一样要打开新的excel,修改后保存,每进行一次另存的操作都要重复打开、保存,我希望可以节省这一重复打开的步骤?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/11 21:25:00 [只看该作者]

无语,不知道你到底想做什么。

 

你要修改值,就肯定要打开啊。如果不需要修改值,就直接拷贝一份啊


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2015/6/11 21:34:00 [只看该作者]

打开模板--导入数据--另存生成新报表,重复导入数据--另存生成新报表,总共另存生成30份新报表。
希望模板在一开始打开直到另存生成30份报表后才关闭?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/11 21:36:00 [只看该作者]

 无语,同一个模板一次生成的内容肯定是相同的。你拷贝30份就行啊

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:8981 威望:0 精华:0 注册:2013/10/24 9:12:00
  发帖心情 Post By:2015/6/11 21:48:00 [只看该作者]

Dim d As Date = Args(0)
Dim f1 As String = args(1)
Dim file As String = args(2)
If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
    Dim Book1 As New XLS.Book(file)
    Dim str As String
    For Each Sheet As XLS.Sheet In Book1.Sheets
        str = str + Sheet.name + ","
    Next
    Dim Sheet2 As XLS.Sheet = Book1.Sheets("资产负债表")
    Dim s As String  = Sheet2(3,0).Value
    s = s.SubString(s.Length - 6)
    s = s.Substring(0,2)
    s = s & Format(d,"yyyyMM") & ".xls"
    Dim App As New MSExcel.Application
    Dim wb As MSExcel.WorkBook = App.WorkBooks.open(ProjectPath & f1)
    Dim ws1 As MSExcel.WorkSheet = wb.WorkSheets("分户快报")
    Dim ws2 As MSExcel.WorkSheet = wb.WorkSheets("资产负债表")
    Dim ws3 As MSExcel.WorkSheet = wb.WorkSheets("利润及分配表")
    Dim ws4 As MSExcel.WorkSheet = wb.WorkSheets("费用表")
    Dim ws5 As MSExcel.WorkSheet = wb.WorkSheets("工资月报")
    Dim ws6 As MSExcel.WorkSheet = wb.WorkSheets("附列资料")
    ws2.cells(4,1).Value = Sheet2(3,0).Value   '单位名称
    ws2.cells(2,1).Value = Sheet2(1,0).Value   '日期
    If str.Contains("分户快报") Then
        Dim Sheet1 As XLS.Sheet = Book1.Sheets("分户快报")
        For n1 As Integer = 3 To 5
            For n2 As Integer = 4 To 48
                If ws1.cells(n2+1,n1+1).Formula = "" Then
                    ws1.cells(n2+1,n1+1).Value = val(Sheet1(n2,n1).Value)
                End If
            Next
        Next
    Else
        app.DisplayAlerts = False
        ws1.delete
    End If
    If str.Contains("资产负债表") Then
        For n1 As Integer = 2 To 3
            For n2 As Integer = 5 To 54
                If ws2.cells(n2+1,n1+1).Formula = "" Then
                    ws2.cells(n2+1,n1+1).Value = val(Sheet2(n2,n1).Value)
                End If
                If ws2.cells(n2+1,n1+5).Formula = "" Then
                    ws2.cells(n2+1,n1+5).Value = val(Sheet2(n2,n1+4).Value)
                End If
            Next
        Next
    Else
        app.DisplayAlerts = False
        ws2.delete
    End If
    If str.Contains("利润及分配表") Then
        Dim Sheet3 As XLS.Sheet = Book1.Sheets("利润及分配表")
        For n1 As Integer = 2 To 3
            For n2 As Integer = 6 To 35
                If ws3.cells(n2+1,n1+1).Formula = "" Then
                    ws3.cells(n2+1,n1+1).Value = val(Sheet3(n2,n1).Value)
                End If
                If ws3.cells(n2+1,n1+5).Formula = "" Then
                    ws3.cells(n2+1,n1+5).Value = val(Sheet3(n2,n1+4).Value)
                End If
            Next
        Next
    Else
        app.DisplayAlerts = False
        ws3.delete
    End If
    If str.Contains("费用表") Then
        Dim Sheet4 As XLS.Sheet = Book1.Sheets("费用表")
        For n1 As Integer = 3 To 6
            For n2 As Integer = 4 To 32
                If ws4.cells(n2+1,n1+1).Formula = "" Then
                    ws4.cells(n2+1,n1+1).Value = val(Sheet4(n2,n1).Value)
                End If
            Next
        Next
    Else
        app.DisplayAlerts = False
        ws4.delete
    End If
    If str.Contains("工资月报") Then
        Dim Sheet5 As XLS.Sheet = Book1.Sheets("工资月报")
        For n1 As Integer = 3 To 4
            For n2 As Integer = 4 To 24
                If ws5.cells(n2+1,n1+1).Formula = "" Then
                    ws5.cells(n2+1,n1+1).Value = val(Sheet5(n2,n1).Value)
                End If
            Next
        Next
    Else
        app.DisplayAlerts = False
        ws5.delete
    End If
    If str.Contains("附列资料") Then
        Dim Sheet6 As XLS.Sheet = Book1.Sheets("附列资料")
        For n1 As Integer = 1 To 13
            For n2 As Integer = 2 To 19
                If ws6.cells(n2+1,n1+1).Formula = "" Then
                    ws6.cells(n2+1,n1+1).Value = val(Sheet6(n2,n1).Value)
                End If
            Next
        Next
    Else
        app.DisplayAlerts = False
        Wb.WorkSheets("附列资料附表").delete
        ws6.delete
    End If
    For Each Ws As MSExcel.WorkSheet In Wb.WorkSheets
        ws.UsedRange.Formula = ws.UsedRange.Formula
        ws.Activate
        app.ActiveWindow.DisplayZeros = False
    Next
    FileSys.RenameFile(file, s)
    wb.save
    wb.close
    App.Quit
End If


 回到顶部
总数 36 上一页 1 2 3 4 下一页