以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  继续请教exce报表顺序号问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=188089)

--  作者:feiyu988
--  发布时间:2023/8/31 19:34:00
--  继续请教exce报表顺序号问题
上次请教老师excel报表中自动生成顺序号问题,以下是老师给出的代码,模板在只有一个sheet时没问题,但如果一个模板里有两个sheet表,都有序号列,那么其中有一个表的序号就会从另一个表的序号接着往下排,不能重新从1开始:
BeforeBuild事件中,将这两个标签插入到Marks集合:
Select Case e.Book.TempLate
    Case "某模板名称"
        e.Book.Marks.Add("序号",0)
        e.Book.Marks.Add("xh", 0)
End Select

BuildDetail事件中加入下面的代码:

Select Case e.Book.TempLate
    Case "某模板名称"

        e.Book.Marks("xh") = e.Book.Marks("xh") + 1
       e.Book.Marks("序号") = e.Book.Marks("xh")
End Select

我试了一下改用以下代码:
BeforeBuild事件中,将这两个标签插入到Marks集合:
Select Case e.Book.TempLate
    Case "某模板名称"
        Select Case e.Book.CurrentSheetName
            Case "统计表1"
                e.Book.Marks.Add("序号", 0)
                e.Book.Marks.Add("xh", 0)
            Case "统计表2"
                e.Book.Marks.Add("序号", 0)
                e.Book.Marks.Add("xh", 0)
        End Select
End Select

BuildDetail事件中加入下面的代码:

Select Case e.Book.TempLate
    Case "某模板名称"
Select Case e.Book.CurrentSheetName
    Case "统计表1"
        e.Book.Marks("xh") = e.Book.Marks("xh") + 1
        e.Book.Marks("序号") = e.Book.Marks("xh")
    Case "统计表2"
        e.Book.Marks("xh") = e.Book.Marks("xh") + 1
        e.Book.Marks("序号") = e.Book.Marks("xh")
End Select
End Select
结果出现”给定关键字不在字典中“,检查模板表名称、里面的sheet名称都没错。
[此贴子已经被作者于2023/8/31 19:35:41编辑过]

--  作者:有点蓝
--  发布时间:2023/8/31 20:11:00
--  
不同sheet使用不同的标记名称,序号1、序号2...........
[此贴子已经被作者于2023/8/31 20:11:45编辑过]