[算表] 多工作表篩選後複製到一個工作表vba

作者: ptguitar (佩蒂吉他)   2019-09-17 15:04:14
軟體:excel
版本:2007以上
試寫了一個把很多工作表寫到一個整理工作表vba
Sub copyto()
Dim mytable As Range, targetrange As Range
For i = 1 To Sheets.Count
If Sheets(i).Name <> "整理" Then Sheets(i).Select
Set targetrange = Worksheets("整理").Range("A" &
Range("A65536").End(xlUp).Row)
Set mytable = Sheets(i).Range("A2:E" & Range("A65536").End(xlUp).Row)
With mytable
.AutoFilter Field:=5, Criteria1:=">=1070801", Operator:=xlAnd,
Criteria2:="<=1080831"
.SpecialCells(xlCellTypeVisible).Copy
targetrange.PasteSpecial xlPasteValues
.AutoFilter
End With
Next i
End Sub
但是執行結果怪怪的
檔案如下
http://0rz.tw/D9JsF
不知道我邏輯問題在那邊 感謝
作者: soyoso (我是耀宗)   2019-09-17 15:17:00
1.因為作用工作表不在"整理",而要取得整理最後一筆有值的儲存格的話,變數targetrange的range.end.row方面再加上worksheets(...).range(..).end(..).row2.if判斷方面如要工作表名稱"整理"時,就不再執行下方至end with的動作的話,a)if sheets.name="整理" thenexit for,b)if sheets.name<>"整理" then ...end if來包從sheets.select到end with的動作3.取得最後一筆有值的列號需加1,不然再貼上時會覆蓋已存在的資料
作者: ptguitar (佩蒂吉他)   2019-09-17 16:42:00
果然可以了!感謝S大指點跟教學~

Links booklink

Contact Us: admin [ a t ] ucptt.com