2

選択した複数のセルの日付をコピーするマクロを実行したいのですが、範囲である場合もあれば、個々のセルが選択されている場合もあります。すべてのセルが同じ列になります。これを行うマクロを記録しましたが、毎回同じ範囲またはセルにコピーします。選択したセルにコピーしたいのですが、これは毎回異なります。

ここにコードがあります

Macro1 Macro
' Test copy range
'
' Keyboard Shortcut: Ctrl+e
'
    Range("$AD$10").Select
    Selection.Copy
    Range("C10").Select
    ActiveWindow.SmallScroll Down:=7
    Range("C10,C12,C16:C21").Select
    Range("C16").Activate
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub
4

1 に答える 1

5

これはあまりお勧めしませんが、現在の選択範囲に貼り付けたい場合は、これを試してください

Option Explicit

Sub Sample()
    With Sheets("Sheet1")
        .Range("$AD$10").Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    End With
End Sub

上記の方法を使用する場合は、適切なエラー処理を行っていることを確認してください。

または、を使用しInputBox()て範囲を選択し、その中に貼り付けます。この例を参照してください

Option Explicit

Sub Sample()
    Dim Ret As Range

    With Sheets("Sheet1")
        On Error Resume Next
        Set Ret = Application.InputBox(Prompt:="Please select a range where you want to paste", Type:=8)
        On Error GoTo 0

        If Not Ret Is Nothing Then
            .Range("$AD$10").Copy

            Ret.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        End If
    End With
End Sub

スクリーンショット

ここに画像の説明を入力

于 2012-09-27T16:17:29.190 に答える