最終的な目標は、ユーザーにドロップダウンリストから複製したい範囲を選択させ、「追加」ボタンをクリックすると、シート。VBA .range(「数式はここに入れることができますか?」)
私の範囲はWorkSheet_RangeNameの形式で名前が付けられています。たとえば、 "Oil Furnace"のセクションには、 "DataInput_OilFurnace"という名前のレンジがあります。したがって、すべての範囲は "DataInput_"で始まり、スペースを削除する必要があります。
Sub AddExtraSection()
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Dim addSection As Range
Set copySheet = Worksheets("Data Input")
Set pasteSheet = Worksheets("Add Extra Section")
Set addSection = Worksheets("Add Extra Section").Range("C3").Formula = _
"=""DataInput_""&SUBSTITUTE($C$3, "" "", """")"
copySheet.range(addSection).Copy
pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial
End Sub
私は式を使用できない場合、私は範囲名が(のように、私は範囲の名前を移入し、私のドロップダウンの下式を有する)特定の細胞でも持つことができますか?
Set addSection = Worksheets("Add Extra Section").ActiveCell.Offset(1, 0).Formula = "=INDIRECT($C$4)"
私はVBAにとって非常に新しく、このすべてが一緒に半分推測されたように見えます...それはそうです!ご協力ありがとうございました!
EDIT - 範囲a.k.a SOLUTION
が、その中に式を持つことができないと私は
Sub AddExtraSection()
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Dim addSection As range
Set copySheet = Worksheets("Data Input")
Set pasteSheet = Worksheets("Add Extra Section")
Set addSection = copySheet.range("C3")
addSection.Formula = "=""DataInput_""&SUBSTITUTE('Add Extra Section'!C3,"" "","""")"
copySheet.range(addSection).Copy
pasteSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial
End Sub
文字列(「何か」) 'は、Excelがセルの範囲を参照するものとして理解できるものであればどれでもかまいません。「A1」、「A1:B12」、「$ A:$ B」、「SomeNamedRange」などです。しかし、いいえ、数式ではありません。 –
Phooey。明確化のためにありがとう! – Haley