【问题标题】:VBA: Copy paste without clipboardVBA:没有剪贴板的复制粘贴
【发布时间】:2010-10-11 21:46:36
【问题描述】:

有没有一种方法可以在不使用剪贴板的情况下将其作为一行复制/粘贴。 将一个范围 - 行复制到另一个工作表粘贴范围 - 整行。我需要的是价值观,而不是公式。

 Sheets("Data").Select 
 ActiveCell.EntireRow.Copy

 Sheets("TSP").Select
 ActiveCell.PasteSpecial Paste:=xlPasteValues

【问题讨论】:

标签: excel vba


【解决方案1】:

此代码复制值(不是公式)。

Sub a()
  Worksheets("Sheet2").Range("TS").Value=Worksheets("Sheet1").Range("1:1").Value
End Sub  

其中“TS”是范围的名称(一行)。

这是您想要达到的目标吗?

编辑

要将活动行复制到 Sheet2.Row2(例如),您可以尝试:

Sub a()
 Dim myrow As Integer
 myrow = ActiveWindow.RangeSelection.Row
 Worksheets("Sheet2").Range("2:2").Value = Worksheets("Sheet1").Rows(myrow).Value
End Sub

HTH!

【讨论】:

  • 我在下面尝试但失败了:Sub a() Dim TS As Range Set TS = Worksheets("Sheet2").Range("2:2") Worksheets("Sheet2").Range(" TS").Value = Worksheets("Sheet1").Range("1:1").Value End Sub
  • 第一次将 sheet1,范围 1:1 找到活动单元格吗?而且,如何在 sheet2 上设置 activecell、fullRow 的范围......
  • 您的副本的来源是什么?当前行?特定的预定义行?
  • 如果源范围包含以等号 = 开头的值,则无法正常工作,将其视为公式。
【解决方案2】:

由于某种原因,没有。 PasteSpecial 是关于剪贴板的。

如果您只需要值,请创建一个 For 循环复制它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-29
    • 2016-09-08
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多