1

以下のコードで何が間違っていますか? Excel で強調表示されているデータの範囲に名前を付けて、VBA コードで呼び出して貼り付けたり、転置したりできるようにしようとしていますが、エラーが発生し続けます。

Sub routine()

Dim rng As Range
Set rng = ActiveCell.CurrentRegion

Cells(10, "D").Select
rng.PasteSpecial

End Sub

また、「ActiveCell」と入力すると気付きます。スペースを押すと、オプションのドロップダウンが表示されます。ただし、「Cells(1,1)」と入力すると、そうではありません。とスペース。何故ですか?助けてくれてありがとう!

4

1 に答える 1

1

編集:コメントを読んだ後:セルの範囲をコピーしてから、特別な(値)を別の場所に貼り付ける簡単な方法を次に示します。このコードを取得して、マクロを完全に記録しました。

Sub Macro1()
    Range("A1:C3").Select
    Selection.Copy
    Cells(10,"D").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

D10範囲をアクティブセルにコピーするつもりなら、変更

Cells(10, "D").Select

Cells(10, "D").copy

また、特別に貼り付けたいものを指定する必要があります(値?形式?)したがって、完全なコードは次のようになります

Sub routine()

    Dim rng As Range
    Set rng = ActiveCell.CurrentRegion

    Cells(10, "D").Copy
    rng.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False   'This will only paste values

    Application.CutCopyMode = False
End Sub
于 2012-11-10T06:16:18.797 に答える