问题太多,没时间逐一解释,总结几点:
一、With Sheets("sheet1")……Sheets("sheet2").……工作页名称为"sheet1”"sheet2”的一般都是新建的文件才有,一般编辑过的excel表格不改工作页名的很少,建议指定特定工作页时注意改名,且必需要有你输入名称的工作页。
二、arr = .Range("A2:D" & iR).Value这句明显是错误语句,单元格区域的value值究竟指的是哪个值,一般有一组数值,如何赋值给一个变量ARR。
三、If G1 > 2 Then MsgBox "你已经执行过了!": End这句不能在vba里运行,end出现在这里是结束程序吗,应该用exit sub;一般工作页数超过2都是正常的,你用工作页的数量>2来判断是否拆分过,只能是用具体表格来运行才行了,没有通用性了。
四、上边代码显示对很多excel 表格的数据模型还不了解。
还有很多地方,无法逐一列举。