1.最好把代码列出来,不然不好分析,我用DIR都挺正常的,没遇到过这种情况,可能是你代码中有小错误,可以跟踪调试。2.应该用GetAttr() And 16>0来排除,因为属性值是通过Or运算得出的值,如果具有别的属性就不是这个值了,但And运算后,如果它具有16这个属性,And的结果就是16,否则就是0。3.UBound(a)<0时数组为空。a为数组名,UBound得到的是数组的上限,当数组为空时UBound返回-1。你可以用个BOOLEAN变量来保存数组的状态,看能不能用。4.有难度,想要保留数据的话可以先备份,但效率比较低。也可以拆成很多个数组来保存……用Preserve的话就只能改最后一维。...