以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  利用Excel文件作为模板生成Excel报表的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=75995)

--  作者:zhangchi96
--  发布时间:2015/10/19 16:34:00
--  利用Excel文件作为模板生成Excel报表的问题

利用Excel文件作为模板生成Excel报表:

 

Dim 房贴比例1,房贴比例2 As Double

If CurrentYM >= 201202 Then

    房贴比例1 = 4.9/100

    房贴比例2 = 13/100

End If.

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\\预算表导出模版.xls")

Dim Sheet0 As XLS.Sheet = Book.Sheets(0)   \'定义第1个工作表

 

Sheet0(7,36).Value = "<iif([工龄起算] < 199812, round2(Vars("房贴比例1")*([岗位工资_实际]+[薪级工资_实际]+[教龄津贴]+[特级教师补贴]+[岗位津贴]+[生活补贴]+[农村津贴]),0),""是"")>" 


请教大师,最后一句怎么修改都不对,除了蓝色的部分外,其他的都没有问题,但不知道错在哪里?怎么修改才好!


--  作者:大红袍
--  发布时间:2015/10/19 16:42:00
--  
Sheet0(7,36).Value = "<iif([工龄起算] < 199812, round(" & 房贴比例1 & "*([岗位工资_实际]+[薪级工资_实际]+[教龄津贴]+[特级教师补贴]+[岗位津贴]+[生活补贴]+[农村津贴]),0),""是"")>"
--  作者:zhangchi96
--  发布时间:2015/10/19 17:32:00
--  
谢谢,但我要想用严格意义的四舍五入,把 round 换成round2后就出错了,有办法吗?大红袍老师!
--  作者:大红袍
--  发布时间:2015/10/19 17:34:00
--  

Format(12.3456,"#")

 

Sheet0(7,36).Value = "<iif([工龄起算] < 199812, Format(" & 房贴比例1 & "*([岗位工资_实际]+[薪级工资_实际]+[教龄津贴]+[特级教师补贴]+[岗位津贴]+[生活补贴]+[农村津贴]),""#""),""是"")>"

[此贴子已经被作者于2015/10/19 17:34:40编辑过]

--  作者:zhangchi96
--  发布时间:2015/10/19 22:50:00
--  
试过了,在这里用 round2 或者 format ,返回的结果都是空值。
--  作者:大红袍
--  发布时间:2015/10/19 22:54:00
--  

Sheet0(7,36).Value = "<iif([工龄起算] < 199812, Format(" & 房贴比例1 & "*(isnull([岗位工资_实际],0)+isnull([薪级工资_实际],0)+isnull([教龄津贴],0)+isnull([特级教师补贴],0)+isnull([岗位津贴],0)+isnull([生活补贴],0)+isnull([农村津贴],0)),""#""),""是"")>"

 

不行,就上传例子


--  作者:zhangchi96
--  发布时间:2015/10/19 23:49:00
--  
不好意思
我是在下面这个语句中
Sheet0(7,35).Value = "< round(12*" & 房积金比例1 & "*([岗位工资_实际]+[薪级工资_实际]),0)>"

把 round换成 format 后,变为:

Sheet0(7,35).Value = "< format(12*" & 房积金比例1 & "*([岗位工资_实际]+[薪级工资_实际]),""#"")>"

         但在其他都是同样的条件下,前者有数值结果,后者执行却结果为空白
[此贴子已经被作者于2015/10/20 7:58:18编辑过]

--  作者:大红袍
--  发布时间:2015/10/20 9:41:00
--  
测试了一下两个都没问题,有问题做例子上来。