エクセル 複数シートの値のみコピーで
こんにちは いつもお世話になっています。
先日、選択した複数のシートを新しいブックに値だけコピーするマクロをこちらで教えていただきました。(関数が入ったシートなのでタブの右クリックからの新規ブックへのコピーでは関数がコピーされてしまうので)
今回、このマクロで失敗するシートがあったので原因を教えてください。
値だけコピーするマクロは以下です。
Sub 値コピー()
Dim WS As Worksheet
ActiveWindow.SelectedSheets.Copy
For Each WS In ActiveWorkbook.Worksheets
With WS.Cells
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
Next
Application.CutCopyMode = False
End Sub
失敗するシートにはつぎの関数があります。
A1セルに=REPLACE(CELL("filename",A1),1,FIND(".xlsx]",CELL("filename",A1))+LEN(".xlsx]")-1,)
B3セルに=IF(COUNTIF(Sheet2!$1:$1,$A$1),IF(ROWS($3:3)>COUNTIF(OFFSET(Sheet1!$J:$J,,MATCH($A$1&"クラス",Sheet1!$J$1:$N$1,0)-1),B$2),"",COUNTIFS(OFFSET(Sheet1!$C:$C,,MATCH($A$1,Sheet1!$C$1:$G$1,0)-1),">"&INDEX(Sheet1!$C:$G,MATCH(B$2&"☆"&ROWS($3:3),OFFSET(Sheet2!$A:$A,,MATCH($A$1,Sheet2!$A$1:$E$1,0)-1),0),MATCH($A$1,Sheet1!$C$1:$G$1,0)),OFFSET(Sheet1!$J:$J,,MATCH($A$1&"クラス",Sheet1!$J$1:$N$1,0)-1),B$2)+1&"位 "&INDEX(Sheet1!$B:$B,MATCH(B$2&"☆"&ROWS($3:3),OFFSET(Sheet2!$A:$A,,MATCH($A$1,Sheet2!$A$1:$E$1,0)-1),0))&" "&INDEX(Sheet1!$C:$G,MATCH(B$2&"☆"&ROWS($3:3),OFFSET(Sheet2!$A:$A,,MATCH($A$1,Sheet2!$A$1:$E$1,0)-1),0),MATCH($A$1,Sheet1!$C$1:$G$1,0))&"点"),"")
別シートのデータから条件に合うものを引き出す関数です。
これらの関数もおしえていただいたもので、まだ理解できていませんので、説明不十分で申し訳ありません。
これらの関数があるシートではなぜ上記のマクロが失敗するのでしょうか。
もちろん、シートのデータを選択、コピーして新規ブックに値のみコピーはできます。
上記のような関数があるシートでも複数選択シートでの値のみコピーができるマクロを教えていただけないでしょうか。
情報不足がありましたら、教えてください。
よろしくお願いします。
エクセル2007
お礼
さっそくありがとうございます! うまくできました~! 思っていたより短い式でできるんですね。 それぞれの関数を調べて研究?してみます! ありがとうございました!!