首页 > 解决方案 > 如何仅通过在 Excel 中选择起始单元格来记录宏以复制和粘贴表格?

问题描述

我希望能够记录一个宏,只需选择起始单元格即可在工作表的任何位置复制和粘贴一个小的 3x2 表格。这是我尝试的代码,但是当我选择一个单元格来运行我的宏时,结果是空白的。

    ActiveCell.Offset(1, 0).Range("A1:B3").Select
    Selection.Copy
    ActiveCell.Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

标签: excelvba

解决方案


我认为这是比依赖Active Cell.
提示您的用户Input Box,允许他们选择所需的单元格。

此代码还考虑了用户点击的可能性 Cancel


Option Explicit

Sub Copy_Table()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") '<-- UPDATE SHEET
Dim MyTable As Range, PasteRange As Range
Set MyTable = ws.Range("A1:B3")

On Error Resume Next
    Set PasteRange = Application.InputBox("Select Desired Location for Table", Type:=8)
On Error GoTo 0

If Not PasteRange Is Nothing Then
    PasteRange.Resize(3, 2).Value = MyTable.Value
End If

End Sub

推荐阅读