以下のプログラムで
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
の部分で「コピー領域と貼り付け領域の形が違うため、情報を貼り付けることができません。」というエラーが出てしまいます。
因みに、コピー元もコピー先も結合セルはありません。
どのように修正すればよいのでしょうか?
--------------------------------------------------------------------------------
Retu = Array(, 2, 17, 10, 9, 6, 7, 8)
For N = 1 To 7 'Array関数Indexは0から始まるため、最後は抽出列数より1少ないものになる。
計上Sheet1.Activate
計上Sheet1.Range(Cells(5, Retu(N)), Cells(Sheet1件数MaxRow, Retu(N))).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
計上Sheet3.Activate
計上Sheet3.Cells(25, N).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
'//////
Retu = Array(, 2, 17, 10, 9, 6, 7, 8)
For N = 1 To 7 'Array関数Indexは0から始まるため、最後は抽出列数より1少ないものになる。
計上Sheet1.Select
Range(Cells(5, Retu(N)), Cells(Sheet1件数MaxRow, Retu(N))).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
計上Sheet3.Select
Cells(25, N).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'//////
記録マクロの修正ってことでしたら、こんな感じでどうでしょうか?
Sheet1件数MaxRow という変数名が少し気になったのですが、
こういう変数って、
「データ最下行」を示したり、
「データ件数」を示したり、
使い分けを錯誤してしまうことが多いので、間違いの無いように注意しましょうね。
No.2
- 回答日時:
ちょっと見、エラーが分からなかったので試してみました。
試験用のブックで、下記のコード(Selectしない様にアレンジしています)で試しましたが、正常に実行できました。
ただし、オートフィルターで見出し行しか表示されていない(0個がみつかりました)場合や、MaxRowの取得が誤っている場合(MaxRow=1)の場合に、お示しのエラーが発生しました。そのあたりを確認される事をお勧めします。
Sub test()
Dim retu As Variant
Dim n As Long, MaxRow As Long
Dim srcSh As Worksheet, dstSh As Worksheet
Set srcSh = Sheets("Sheet1")
Set dstSh = Sheets("Sheet2")
MaxRow = srcSh.Range("A" & srcSh.Rows.Count).End(xlUp).Row
retu = Array(1, 3)
For n = 0 To UBound(retu)
With srcSh
Range(.Cells(1, retu(n)), .Cells(MaxRow, retu(n))).SpecialCells(xlCellTypeVisible).Copy
End With
dstSh.Cells(1, n + 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Next n
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 送付元、送付先が同じ大きさの複合セルのコピーがVBAで、できません。 1 2023/06/01 20:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBSで変数の宣言はできないので...
-
エクセルエラー13型が一致しま...
-
ExcelVBA Range クラスの Page...
-
【Excel VBA】マクロをボタンに...
-
実行時エラー48発生時のDLL特定...
-
OLEDB.NETで接続できない
-
VBS実行時エラー オブジェクト...
-
excel vbaでvlooupの変数がわか...
-
マクロについて教えてください...
-
プロシージャ名の取得
-
EXCEL VBAマクロ中断でデバッグ...
-
VBAでのエラー
-
実行時エラー3001「引数が間違...
-
なぜエラーになるのでしょうか...
-
Excel2019 ワークシートのコピ...
-
vbaのvlookup関数エラー原因を...
-
なぜこんな初歩的なVBAのIf文で...
-
デバッグ時はOK、デバッグ無し...
-
Outlook.ApplicationをCreateOb...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
実行時エラー3001「引数が間違...
-
VBS実行時エラー オブジェクト...
-
VBAがブレークモードになっ...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
EXCEL VBAマクロ中断でデバッグ...
-
VBSで変数の宣言はできないので...
-
ADODB.Streamを使用してUTF-8を...
-
実行時エラー -'-2147417848
-
AccessVBAでExcelを起動し、罫...
-
VB6+SQL サーバー 2000 で 実行...
-
Outlook.ApplicationをCreateOb...
-
Application.ActiveInspectorで...
おすすめ情報