用于将命名范围从一个工作表复制到另一个工作表的宏

时间:2012-08-31 04:39:41

标签: excel excel-vba excel-2010 vba

我在一个工作表中有几个包含常量数据的命名范围。 我有一个目标范围,其中一个命名范围将被复制到另一个工作表上。

将根据用户输入到其他单元格中选择要复制的命名范围。 我已设法在单个单元格中创建相关命名范围的名称。

我不能做什么(因为我是VBA Noob谁认为他可以在不使用VBA的情况下完成所有这些!),创建一个宏来读取相关的单元格,然后复制它读取的任何名称范围,进入目标范围。

任何最谦卑和感激的帮助。

3 个答案:

答案 0 :(得分:2)

比方说,您的范围名称为MyRange

因此要复制范围,你必须这样做

Range("MyRange").Copy

现在让我们假设Sheet1的单元格A1有单词MyRange。在这种情况下,您可以使用Range("A1").Value

检索单元格A1的值

所以

Range("MyRange").Copy

变为

Range(Range("A1").Value).Copy

这是一个完整的例子。我假设你要复制说Sheet2的Cell A1

Sub Sample()
    Dim wsI As Worksheet, wsO As Worksheet

    Set wsI = ThisWorkbook.Sheets("Sheet1")
    Set wsO = ThisWorkbook.Sheets("Sheet2")

    wsI.Range(wsI.Range("A1").Value).Copy wsO.Range("A1")
End Sub

答案 1 :(得分:0)

我不确定你是否需要这些,但是,如果你只是需要将A1单元格的内容从sheet1复制到sheet2,那么就这样做:

Plan2.Cells(1, 1).Value = Plan1.Cells(1, 1).Value

您也可以将代码封装到子中:

Sub copyvalues()
Plan2.Cells(1, 1).Value = Plan1.Cells(1, 1).Value
End Sub

...最后,您必须插入一个按钮,使用onclick()事件来触发sub(您必须将其分配到模块中)

抱歉,我的英文不好,希望对你有所帮助。

答案 2 :(得分:0)

Public Function copyNamevalues(srcName As Name, destName As Name)
    srcName.RefersToRange.Cells.Copy (destName.RefersToRange.Cells)
End Function