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

看板Office作者 (佩蒂吉他)時間4年前 (2019/09/17 15:04), 編輯推噓0(0010)
留言10則, 2人參與, 4年前最新討論串1/1
軟體: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 不知道我邏輯問題在那邊 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.67.78 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1568703856.A.9EC.html

09/17 15:17, 4年前 , 1F
1.因為作用工作表不在"整理",而要取得整理最後一筆有值的
09/17 15:17, 1F

09/17 15:18, 4年前 , 2F
儲存格的話,變數targetrange的range.end.row方面再加上
09/17 15:18, 2F

09/17 15:19, 4年前 , 3F
worksheets(...).range(..).end(..).row
09/17 15:19, 3F

09/17 15:20, 4年前 , 4F
2.if判斷方面如要工作表名稱"整理"時,就不再執行下方至
09/17 15:20, 4F

09/17 15:21, 4年前 , 5F
end with的動作的話,a)if sheets.name="整理" then
09/17 15:21, 5F

09/17 15:23, 4年前 , 6F
exit for,b)if sheets.name<>"整理" then ...end if
09/17 15:23, 6F

09/17 15:23, 4年前 , 7F
來包從sheets.select到end with的動作
09/17 15:23, 7F

09/17 15:28, 4年前 , 8F
3.取得最後一筆有值的列號需加1,不然再貼上時會覆蓋已存
09/17 15:28, 8F

09/17 15:28, 4年前 , 9F
在的資料
09/17 15:28, 9F

09/17 16:42, 4年前 , 10F
果然可以了!感謝S大指點跟教學~
09/17 16:42, 10F
文章代碼(AID): #1TW8Lmdi (Office)