使用命名单元格创build一个范围

我需要在vba中使用命名单元格创build一个范围。

到目前为止,我有以下不工作;

Dim pasteRange As Range Set pasteRange = Range(firstRow, 11) pasteRange.Value(11) = slabTemplateSheet.Range("slabTemp").Value(11) 

firstRow是一个整数。 slabTemplateSheet引用工作表,slabTemp是所述表中的命名范围。

我认为这将是相当简单的,因为我的粘贴范围只有1行和11列(即连续11个单元格),但我无法得到它的工作。

在你的答案,假设有一个,你也可以请给我粘贴多个行和列的能力,所以例如,如果slabTemp引用A1:F16

编辑 :我没有说清楚我在做什么。

我在工作表slabTemplateSheet中有一个名为slabTemp的命名范围。 在另一个工作表中,我想复制该范围,包括格式,然后粘贴。 我听说使用复制/粘贴function很慢,所以我发现上面的属性,应该做同样的事情,但速度更快(我没有testing过)。 来源,Durgesh的答案在这里: 快速的方法来复制格式在Excel中

在新表中,我需要将其粘贴到要创build的范围中(这是我不知道该怎么做的)

所以Range(firstRow,11)是指保存为firstRow的整数(行号),11是列号。 但是这不起作用。

我想我的问题是,我如何创build一个范围使用名称,而不是说Range(“A1:G6”),而是范围(firstRow1:secondRow:6)

再次感谢!

这是一个工作的例子。

 Public Sub CopyRange() 'Define the Copy Range Dim CopyRange As Range: Set CopyRange = Range("MyCustomRange") 'Define the range to Paste Value to Dim PasteRange As Range: Set PasteRange = Range("MyOtherCustomRange") 'Move the Copy Range into the Paste Range 'You don't need to specify the sheet name, the Defined named holds that information 'Important: The ranges should be the same size, otherwise you may get an error PasteRange.Value() = CopyRange.Value() End Sub 

关于如何创build一个命名范围 (工作表范围,而不是针对您的代码的工作簿),请使用下面的代码。 不知道你在这一行中想达到什么目的:

 pasteRange.Value(11) = slabTemplateSheet.Range("slabTemp").Value(11) 

无论如何,这是命名范围的代码:

 Sub UseNamedRange() Dim slabTemplateSheet As Worksheet Dim pasteRange As Range Set slabTemplateSheet = Sheets("Sheet1") ' create the Named Range "slabTemp" (Named Range for Worksheet) ' you can manualy (or with variables) modify the Range("A1:F16") slabTemplateSheet.Names.Add "slabTemp", Sheets("Sheet1").Range("A1:F16") Set pasteRange = slabTemplateSheet.Range("slabTemp") End Sub 

它似乎并不像你正在尝试传输单元格的xlRangeValueXMLSpreadsheet XlRangeValueDataType枚举 ; 相反,它听起来像你想连续11个单元格。

 with slabTemplateSheet.Range("slabTemp") pasteRange.Resize(1, 11) = .Cells.Resize(1, 11).Value end with