Excel VBA:复制增量单元格值

Posted

技术标签:

【中文标题】Excel VBA:复制增量单元格值【英文标题】:Excel VBA: Copy increment cell value 【发布时间】:2015-06-30 08:07:24 【问题描述】:

我是 VBA 新手,所以我向你们寻求正确方向的一些提示。

我有一个包含两张工作表(Blad1、Blad2)的工作簿,我正在尝试创建一个函数,该函数在下一个可用单元格中复制从 Blad1 到 Blad2 的预制单元格范围。同时我希望每次按下按钮时复制的单元格中的数字增加 10,以便每个副本都有不同的值。

这是我目前写的代码:

    Sub new_Group()
Dim rnTarget As Range
Set rnTarget = Blad2.Cells(Range("A:A").Cells.Count, 1).End(xlUp)
If rnTarget <> "" Then Set rnTarget = rnTarget.Offset(1)
Blad1.Range("A8:F15").Copy rnTarget
Blad1.Range("J9").Value = Blad1.Range("J9").Value + 10
End Sub

复制/粘贴功能按预期工作。但问题在于增量。我不知道如何只复制值而不是公式,因此复制的单元格中的值会发生变化,它还会将 J9 源单元格更改为 J10、J17 等。

Image of Blad1 cells

这是 Blad1 中准备复制的预制单元。 POS后的数字是我想在每次复制后增加10。

要么我应该使用其他方式来复制单元格,这样它就不会保留公式,而只保留值,或者我要进行所有错误的增量。 对任何类型的指针都很高兴。

【问题讨论】:

【参考方案1】:

下面应该只粘贴值

Sub new_Group()
Dim rnTarget As Range
Set rnTarget = Blad2.Cells(Range("A:A").Cells.Count, 1).End(xlUp)
If rnTarget <> "" Then Set rnTarget = rnTarget.Offset(1)
Blad1.Range("A8:F15").Copy 
Blad2.range(rnTarget.address).PasteSpecial xlValues
Blad1.Range("J9").Value = Blad1.Range("J9").Value + 10
End Sub

【讨论】:

感谢您的快速回答!但是当我尝试运行它时,它会给出错误 1004,说该方法失败并指向行“Blad2.Range(rnTarget).PasteSpecial xlValues” 很抱歉将 Blad2.range(rnTarget).PasteSpecial xlValues 更改为 Blad2.range(rnTarget.address).PasteSpecial xlValues。我改变了代码

以上是关于Excel VBA:复制增量单元格值的主要内容,如果未能解决你的问题,请参考以下文章

利用VBA实现多个工作表指定单元格公式变为数值?

基于公式的单元格值触发的 VBA 电子邮件代码

VBA用户定义的函数来复制单元格的值,文本形成和超链接?

访问 VBA - 在大范围内更改 Excel 单元格值的更快方法?

VBA 按钮 - 基于单元格值而不是 ActiveCell

Excel vba中怎样填写数值改变单元格后触发事件