Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VBA中调用范围_Vba - Fatal编程技术网

在VBA中调用范围

在VBA中调用范围,vba,Vba,下面的代码有什么问题?我试图命名excel中突出显示的一系列数据,并能够在VBA代码中调用这些数据,然后将其粘贴、转置,等等。但它总是给我一个错误 Sub routine() Dim rng As Range Set rng = ActiveCell.CurrentRegion Cells(10, "D").Select rng.PasteSpecial End Sub 我还注意到,当键入“ActiveCell”并点击空格时,我会得到一个下拉选项。然而,当我输入“Cells(1,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)”和空格时,情况就不是这样了。为什么呢?谢谢你们的帮助

编辑:阅读评论后: 下面是一种简单的方法,可以复制一系列单元格,然后将特殊(值)粘贴到其他位置。我在录制宏时获得了这段代码

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范围复制到任何activecell,请更改

Cells(10, "D").Select

您还需要指定要特别粘贴的内容(值?格式?) 所以您的完整代码应该是

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

编辑:阅读评论后: 下面是一种简单的方法,可以复制一系列单元格,然后将特殊(值)粘贴到其他位置。我在录制宏时获得了这段代码

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范围复制到任何activecell,请更改

Cells(10, "D").Select

您还需要指定要特别粘贴的内容(值?格式?) 所以您的完整代码应该是

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

您没有首先复制就粘贴?是否出现错误“剪贴板上的数据大小和形状不相同…”?从您的示例数据中,一个简单的
ActiveCell.CurrentRegion.Copy Cells(10,“D”)
将执行复制和粘贴。转置类似于Ahmad的代码样本,您在粘贴时没有首先复制?您的错误是“剪贴板上的数据大小和形状不同…”吗?从您的样本数据中,一个简单的
ActiveCell.CurrentRegion.Copy Cells(10,“D”)
将进行复制和粘贴。转置就像艾哈迈德的代码样本一样。艾哈迈德,非常感谢你的帮助。但是代码不起作用。在定义此数据块是范围后,我想转到另一个单元格并将其粘贴到那里。请确切地告诉我您希望在正常条件下完成什么。您要复制的是什么?您要将其粘贴到哪里?您只想粘贴值/格式还是其他?嗨,Ahmad,是的,所以我想选择一个指定数据范围,比如说范围(“A1:C3”),将其命名为rng,然后转到单元格(5,“F”)并粘贴整个块的值。希望我更清楚一点。谢谢你的耐心@gabriel只需使用
范围(“A1:C3”)。复制单元格(5,“F”)
。艾哈迈德,
选项
是多余的。我知道我可以在一行中使用副本-->说明。但我希望能够定义范围并转到另一个单元格并粘贴值。我该怎么做?嗨,艾哈迈德,非常感谢你的帮助。但是代码不起作用。在定义此数据块是范围后,我想转到另一个单元格并将其粘贴到那里。请确切地告诉我您希望在正常条件下完成什么。您要复制的是什么?您要将其粘贴到哪里?您只想粘贴值/格式还是其他?嗨,Ahmad,是的,所以我想选择一个指定数据范围,比如说范围(“A1:C3”),将其命名为rng,然后转到单元格(5,“F”)并粘贴整个块的值。希望我更清楚一点。谢谢你的耐心@gabriel只需使用
范围(“A1:C3”)。复制单元格(5,“F”)
。艾哈迈德,
选项
是多余的。我知道我可以在一行中使用副本-->说明。但我希望能够定义范围并转到另一个单元格并粘贴值。我该怎么做?