以下是引用tlliqi在2014-4-28 21:46:58的发言:
过程中我自己也用VBA来做---VBA过程说下怎么个步骤
Sub aa()
fir = [a65536].End(xlUp).Row
'定义一个变量,这个数值就是整个数据表的行数。
Range(Cells(1, 1), Cells([a65536].End(xlUp).Row, "m")).AutoFilter field:=9, Criteria1:="=*仓库调拨单据*", Operator:=xlAnd
'第一步先进行筛选,只有仓库调拨单据才需要用到这一块,其他单据不需要。
Range(Cells(2, 1), Cells([a65536].End(xlUp).Row, "m")).SpecialCells(xlCellTypeVisible).Copy
Cells([a65536].End(xlUp).Row + 1, 1).PasteSpecial xlPasteValues
'复制全部的调拨单据先,然后粘贴到这个工作表的最末尾。
fis = [a65536].End(xlUp).Row
'获取新的最后一行。
Range(Cells(fir + 1, "i"), Cells(fis, "i")) = "调拨入库"
'更改名称
Range(Cells(fir + 1, "d"), Cells(fis, "d")).TextToColumns Destination:=Cells(fir + 1, "d"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 9), Array(2, 9), Array(3, 2)), TrailingMinusNumbers:=True
'分列的方式获取调拨入库的库位
’下面是用同样的方式获取调拨出库。
Range(Cells(2, 1), Cells(fir, "m")).SpecialCells(xlCellTypeVisible).Copy
Cells([a65536].End(xlUp).Row + 1, 1).PasteSpecial xlPasteValues
fit = [a65536].End(xlUp).Row
Range(Cells(fis + 1, "i"), Cells(fit, "i")) = "调拨出库"
Range(Cells(fis + 1, "d"), Cells(fit, "d")).TextToColumns Destination:=Cells(fis + 1, "d"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 9), Array(3, 9)), TrailingMinusNumbers:=True
End Sub