Моя конечная цель состоит в том, чтобы пользователи выбирали диапазон, который они хотели бы дублировать, из выпадающего списка, а затем, нажав кнопку «добавить», он будет вставляться на Лист.VBA .range («Может ли формула перейти сюда?»)
Мои диапазоны называются в формате WorkSheet_RangeName, поэтому, например, раздел «Нефтяная печь» будет иметь названный диапазон «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
Если я не могу использовать формулу, я могу иметь имя диапазона быть конкретной ячейке (как, у меня есть формула под моей выпадающего списка, заполняющий с названием Range)?
Set addSection = Worksheets("Add Extra Section").ActiveCell.Offset(1, 0).Formula = "=INDIRECT($C$4)"
Я новичок в VBA, так что если все это кажется починилась половины догадки ... это потому, что это! Спасибо за любую помощь!
EDIT - РЕШЕНИЕ
a.k.a диапазона, не может иметь формулу внутри него, и мне нужно, чтобы исправить мой набор addSection
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
Строковый литерал в 'Range («что-то») 'может быть любым, что Excel может понять как относящееся к диапазону ячеек:' 'A1" ',' "A1: B12" ',' "$ A: $ B", '" SomeNamedRange "', что угодно. Но нет, не формула. –
Phooey. Спасибо за разъяснение! – Haley