Скопируйте диапазон от листа1 до листа2
Я довольно новичок в VBA, но я надеюсь, что кто-то может мне помочь. Вот что я хотел бы сделать;
- У меня есть диапазон ("A4:C500") в Sheet1, в котором есть несколько пустых ячеек, например, из. ряд 180
- Я хотел бы скопировать весь этот диапазон в Sheet2
- После этого, если я вставлю новую строку в лист 1, например. "A24:C24" и я заполняю, например, "A24: C24" значениями. Я хочу сначала вставить всю новую строку в "A24" на Листе 2 (ту же строку, что и новая строка на Листе 1) и переместить все существующие ячейки на 1 строку вниз в листе 2. Новая строка в Sheet2 должна копировать формулы из строки выше (например, строка 24 должна копировать формулы из строки 23)
- После того, как новая строка была вставлена в Sheet2, я бы хотел скопировать значения из Sheet1 "A24:C24" в Sheet2 "A24:C24"
Относительно 2. Я попытался использовать некоторый код, как;
Sub Copy()
Ark1.Range("A4:C500").Copy
Ark2.Range("A4").Rows("1:1").Insert Shift:=xlDown
End Sub
и это в основном заботится о 2.
Как я могу заставить 3. и 4. работать? Любые идеи для меня, чтобы попробовать?
заранее спасибо
1 ответ
Решение
Для выполнения 3 и 4 вы можете использовать код ниже:
With Ark1
'insert new row in sheet one
.Row("24").Insert Shift:=xlDown
'fill range A24:C24 with values
.Range("A24:C24").Value = Array("Your", "Values", "Here")
' Or if specific cell values (.cells(row, column).value) Array(.cells(1,1).value, .cells(1,2).value, .cells(1,3).value)
End With
With Ark2
'copy row to retain formulas
.Row(23).Copy
'insert new row in sheet two
.Row(24).Insert Shift:=xlDown
'get values from sheet one to sheet 2
.Range("A24:C24").Value = Ark1.Range("A24:C24").Value
End With
PS: Как упоминает К.Д. в своих комментариях, есть много документации, чтобы помочь вам с такими проблемами. K.Dᴀᴠɪs предоставил ссылки: