当前位置: 首页 > 知识库问答 >
问题:

如何复制粘贴目标而不使用激活工作表[重复]

堵昊焱
2023-03-14

我的宏有一个问题,我从一个工作表(a)运行它,我需要从工作表(B)复制单元格并粘贴到工作表(C),但我只能使它改变工作表,有没有办法做到这一点而不激活工作表???

enter code here
Sub VPL()

Dim j As Long, i As Long

For j = 1 To 9


' COPIAR/COLAR GERAÇÃO


' How to do this without activate sheets "Geração" and "Premissas"????

Sheets("Geração").Activate
ActiveSheet.Range(Cells(20, 2 + j), Cells(31, 2 + j)).Select
Selection.Copy


Sheets("Premissas").Activate
ActiveSheet.Range("Z20:AI31").Select
 Selection.PasteSpecial Paste:=xlPasteValues, _
 Operation:=xlNone, _
 SkipBlanks:=False, _
 Transpose:=False


Sheets("Premissas").Activate
ActiveSheet.Range("AL20:AL31").Select
Selection.PasteSpecial Paste:=xlPasteValues, _
 Operation:=xlNone, _
 SkipBlanks:=False, _
 Transpose:=False


 ' COPIAR/COLAR PLD

For i = 1 To 2000

'The same problem here.

Sheets("PLD NE").Activate
ActiveSheet.Range(Cells(1 + i, 1), Cells(1 + i, 60)).Select
Selection.Copy


Sheets("Macro").Activate
ActiveSheet.Range("AZ27").Select
 Selection.PasteSpecial Paste:=xlPasteValues, _
 Operation:=xlNone, _
 SkipBlanks:=False, _
 Transpose:=False

'COPIAR/COLAR VPL

'The macro runs form Sheets("RESULTADO LEN") and I want only to be on this sheet.

Sheets("RESULTADO LEN").Activate  

Sheets(10).Cells(3 + i, 2 + j) = Sheets(5).Cells(35, 4).Value   'Ametista
Sheets(10).Cells(3 + i, 11 + j) = Sheets(5).Cells(62, 4).Value  'Borgo
Sheets(10).Cells(3 + i, 20 + j) = Sheets(5).Cells(89, 4).Value  'Caitite
Sheets(10).Cells(3 + i, 29 + j) = Sheets(5).Cells(116, 4).Value 'Dourados
Sheets(10).Cells(3 + i, 38 + j) = Sheets(5).Cells(143, 4).Value 'Espigão
Sheets(10).Cells(3 + i, 47 + j) = Sheets(5).Cells(170, 4).Value 'Maron
Sheets(10).Cells(3 + i, 56 + j) = Sheets(5).Cells(197, 4).Value 'Pelourinho
Sheets(10).Cells(3 + i, 65 + j) = Sheets(5).Cells(224, 4).Value 'Pilões
Sheets(10).Cells(3 + i, 74 + j) = Sheets(5).Cells(251, 4).Value 'Serra do espigão
Sheets(10).Cells(3 + i, 83 + j) = Sheets(6).Cells(36, 4).Value  'São Salvador

Next
Next

End Sub    

共有1个答案

吕晟睿
2023-03-14

在上面的链接问题中,我找到了range.copy命令。

您可以这样使用它:

Sub CopyCells()
    Dim RngA As Range
    Set RngA = Sheets("A").Range("B1:C4")

    Sheets(1).Cells(1, 1).Value = "foo"
    RngA.Copy Sheets(1).Range("B1:C4")
End Sub
 类似资料:
  • > sheet1:用户单击运行VBA的按钮。 第2:VBA选择第D列上的第一个非空白单元格 Range(“d”&rows.count).end(xlUp).offsed(1).select 多谢!

  • 我想复制和粘贴值只从源表到目标表使用谷歌脚本。 我在列中应用了筛选器,因此我只希望复制存在/筛选的单元格(不是所有值)。 在我构建的示例中,我有: 源图纸(从中复制值):图纸1目标图纸(将值粘贴到):图纸2 第1张截图: 过程/步骤: 当我在A列的“Fav_颜色”中选择任何特定颜色时。。让我们说“黄色”。 现在,成员被相应地过滤。 在单击按钮时,我希望运行我的google脚本函数,复制过滤后的成员

  • 问题内容: 我正在尝试2个替代方法: 忽略右键 忽略+ ,+ 这是我的代码: 这是我的HTML: 该功能有效,但不起作用。 问题答案: 你不能 您可以尝试阻止某些矢量(例如,使右键单击更加困难的黑客,拦截+ ,使其难以选择文本)……但是它们只能起到某种作用,并且不可能阻止所有矢量(编辑->复制) ?查看源代码??等…)。 如果您想保护内容免受技术含量较低的用户的侵害,则可以采用这些方法……但是,正

  • 问题内容: 我的.emacs中有(cua-mode t),因此Cc是复制的,而Cv是粘贴的,就像桌面上的其他大多数程序(Ubuntu,Gnome,Linux)一样。但是,Emacs似乎并未与其他程序共享剪贴板/复制缓冲区。 例如,如果我在Firefox中使用Cc,则可以将SCv粘贴到终端中,或者将Cv粘贴到gedit中。但是,如果我在emacs中使用Cv(或Cy),则无法获得从Firefox复制的

  • 问题是,从vim到剪贴板的复制/粘贴停止工作。我不知道为什么。。。 在中,我也没有看到和缓冲区... 这是我的。vimrc,如果需要的话。 有什么建议吗? 谢谢