将单元格引用复制到另一列vba

时间:2016-12-29 17:09:22

标签: excel vba

尝试将单元格引用从一列复制到另一列(理想情况下在字符串的末尾添加“PR”,但我还没有那么远),我的尝试如下。我无法在网上找到解决方案,所以如果这是重复,我很抱歉!

请让我知道如何纠正我的尝试

 Sub copynames()
 Dim source as range
 Dim target as range
 Dim n as Name

set source = range("A1:A3")
set target = range("b1:b3")

for i=1 to source.Rows.Count
 target.cell(i,0).Names = source.Cell(i,0).Names
next i

End Sub

2 个答案:

答案 0 :(得分:1)

我假设通过“单元格引用”你正在谈论名字。它们不作为特定范围的一部分存在,它们是工作簿中的引用集合(当您查看名称管理器时看到的内容)。因此,您需要访问该集合以创建新名称。我相信你想根据引用现有范围的名称命名一个范围,这段代码应该这样做。

Sub copynames()
Dim source As Range
Dim target As Range

Set source = Range("A1:A3")
Set target = Range("b1:b3")

'Set the target cells to the name of the source cells with "PR" appended
For i = 1 To source.Rows.Count
 ThisWorkbook.Names.Add source(i, 1).Name.Name & "PR", target(i, 1)
Next i

End Sub

答案 1 :(得分:0)

如果我正确理解您的问题,您希望为目标范围内的每个单元格指定与相应源单元格相同的公式/单元格引用。如果是这样,这应该做你需要的:

Sub copyNames()

Dim source As Range
Dim target As Range

Set source = Range("A1:A3")
Set target = Range("B1:B3")

For i = 1 To source.Rows.Count
 target.Cells(i, 1).Formula = source.Cells(i, 1).Formula
Next i

End Sub

如果需要将“PR”附加到将在目标单元格中​​显示的值的末尾,则需要将此文本添加到目标单元格将指向的引用单元格中的值。

或者,您可以只复制源数据中的值,并将文本附加到该值,如果实时引用不重要(将“公式”属性更改为“值”)。