2012-09-27 117 views
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 

回答

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

相关问题