我需要在vba中使用命名单元格创建一个范围。
到目前为止,我有以下哪些无效;
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的命名范围。在另一张表中,我想复制该范围,包括格式,然后粘贴它。我听说使用复制/粘贴功能很慢,所以我发现上面的属性据说可以做同样的事情,但更快(我还没有测试过它)。来源,Durgesh的回答:fast way to copy formatting in excel
在新表格中,我需要将其粘贴到要创建的范围内(这是我不知道该怎么做)
So Range(firstRow,11)是指保存为firstRow(行号)的整数,11是列号。但这不起作用。
我想我的问题是,我如何使用名称创建范围而不是说范围(" A1:G6")而是Range(firstRow1:secondRow:6)
再次感谢!
答案 0 :(得分:0)
这是一个有效的例子。
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
答案 1 :(得分:0)
关于如何创建命名范围(工作表范围,而不是代码中的工作簿),请使用以下代码。不确定你想要在这一行中实现什么目标:
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
答案 2 :(得分:0)
您似乎没有尝试转移单元格的 xlRangeValueXMLSpreadsheet XlRangeValueDataType enumeration;相反,它听起来像你想要连续11个细胞。
with slabTemplateSheet.Range("slabTemp")
pasteRange.Resize(1, 11) = .Cells.Resize(1, 11).Value
end with