用vba插入形态转换单数据和写入转换数量
用vba把形态转换单分组后,还有小部分无规则的需要人工手动分组,全部分组完成后,用数据透视表和U8系统结存做对比,无误后我们就可以写代码用vba插入形态转换单数据和写入转换数量。Sub形态转换插入数据()Dimi,irow,j,kAsIntegerDimyAsSingleirowRange(i65536)。End(xlUp)。RowFori5To3500kRange(Ii)。Offset(0,2)IfRange(Li)Andk2AndRange(Ii)Range(Ii2)AndRange(Hi)0AndRange(Hi1)0ThenRange(Ii)。SelectRows(i)。CopyRange(Li)Range(Hi1)Range(Li1)Range(Hi1)Forj1Tok2ActiveCell。EntireRow。Offset(2,0)。SelectSelection。InsertShift:xlShiftDownRange(LActiveCell。Row)Range(HActiveCell。Row1)Range(LActiveCell。Row1)Range(HActiveCell。Row1)ActiveCell。EntireRow。CopyNextElseIfRange(Li)Andk2AndRange(Ii)Range(Ii2)AndRange(Hi)0AndRange(Hi1)0ThenyApplication。WorksheetFunction。Sum(Range(Hi)。Resize(k,1))Range(Mi)yRows(ik1)。SelectRows(ik1)。CopyRange(LActiveCell。Row)(Range(HActiveCell。Row1)1000y1000)1000为了解决浮点误差问题乘10001000Range(LActiveCell。Row1)(Range(HActiveCell。Row1)1000y1000)1000y0Forjk2To1Step1Rows(ij)。SelectSelection。InsertShift:xlShiftDownRange(LActiveCell。Row)Range(HActiveCell。Row1)Range(LActiveCell。Row1)Range(HActiveCell。Row1)ActiveCell。EntireRow。CopyNextElseIfRange(Li)Andk2AndRange(Ii)Range(Ii1)AndRange(Hi)0AndRange(Hi1)0ThenRange(Li)Range(Hi1)Range(Li1)Range(Hi1)EndIfNextirowRange(i65536)。End(xlUp)。RowMsgBoxOKEndSub