将值粘贴到用户选择的单元格范围内,有时会在单元格之间显示空白

时间:2012-09-27 16:02:35

标签: excel-vba vba excel

我想运行一个在多个选定单元格中复制日期的宏,有时它们是一个范围,但有时可能会选择单个单元格。所有单元格都在同一列中。我录制了一个执行此操作的宏,但每次都复制在相同的范围或单元格中。我想将它复制到我选择的单元格中 - 每次都会有所不同。

这是代码

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

1 个答案:

答案 0 :(得分: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

<强> SCREENSHOT

enter image description here