许久没有碰代码,今天拿到客户送过来的Excel版WBS,没料到改了几个日期后,宏出错了,激起了深藏心底的Debug兴致,记录下处理过程。 WBS结构比较简单,一张平铺的task大表,基于每个task设定的预定开始日和结束日画schedule。总共40条task,在修改中间几条的日期后(9月某日修改成10月某日),画schedule的宏直接报错,选择End后,整个表就完全扭曲无法看了。 打开后台vba代码,倒吸一口凉气,估计是某位“大拿”天马行空写的,应该也不是专业“码农”写的,变量的命名让人摸不着头脑,比如“L_S_E_MAX”。module文件有七八个,看来代码行数也不少,默默的关上代码窗口,准备先从数据上进行定位。 先将我修改的几行删掉,重新执行宏,正常生成,于是怀疑原来我修改的那几行里面是不是有一些隐藏的 or 不可见的内容,于是重新插入新行,将主要内容重新填入,继续try,表格依然崩溃。在报错窗口处进入Debug界面,看到是定位在一个取值语句,看了指定Cell位置的几个变量,竟然有个变量是负数,不崩溃才怪呢。 加上”On Error Resume Next“,准备强制执行...