アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のプログラムで

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件)

'//////



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 という変数名が少し気になったのですが、
こういう変数って、
「データ最下行」を示したり、
「データ件数」を示したり、
使い分けを錯誤してしまうことが多いので、間違いの無いように注意しましょうね。
    • good
    • 0

ちょっと見、エラーが分からなかったので試してみました。


試験用のブックで、下記のコード(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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!