代码太长,可能出现问题的地方太多,而且你还有几个内部函数,也有可能出现问题的地方是内部函数.
类似Dim c5 As Double = DataTables("成绩库").Find(" " & tj & " = '" & c1 & "' And [部别] = '" & dr("部别") & "' And 年级 = '" & dr("年级") & "'")(tj1)
这些代码,不要这样直接取值,万一行没找到呢,不就报空值错误了吗?
Dim jdr As DataRow = DataTables("目标设置").Find("部别 = '" & dr("部别") & "' And 年级 = '" & dr("年级") & "' And 类别 = '县合计'")
先这些也要判断一下是否空行再去取值
if jdr isnot nothing then
Dim c1 As Double = jdr("目标9")
Dim c2 As Double = jdr("目标10")
Dim c9 As Double = jdr("目标8")
Dim c3 As Double = jdr("目标12")
Dim c4 As Double = jdr("目标13")
end if
建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm
先找出是哪一行出错,然后分析原因,搞不定,跟帖诉我们运行到哪一行出错。