2014-12-20 4 views
0

Привет, ребята, вам не нужна небольшая помощь по макросу VBA У меня есть данные на листе в строке 36 от A36 до Q36, что мне нужно скопировать одну строку вниз на основе число из ячейки S36. Поэтому, если число в S36 равно 5, это означает, что мне нужно скопировать строку 36 пять раз из этой строки. Число в ячейке S36 идет от 0, если 0 не копировать.Excel vba скопировать строку и вставить одну строку вниз на основе числа в ячейке

+0

Что вы сделали до сих пор, чтобы достичь своей цели? У вас есть код? – lowak

+0

уточните пожалуйста. возможно, попытайтесь разбить его на свою основную часть, что-то вроде «копировать ячейку A, если C == 9, иначе скопировать ячейку B» – hoijui

+1

Этот вопрос является неопределенным. Пожалуйста, предоставьте более подробную информацию. Возможно, код или изображение того, что вы пытаетесь сделать. – Auxiliary

ответ

0

Это метод, основанный на диапазонах. Возможно, вы захотите использовать times_to_copy+1, я не могу сказать по вашему вопросу. Я не тестировал, правильно ли это работает с формулами и т. Д. В коде предполагается, что активным листом является тот, где вы хотите применить код.

Sub copy_cat() 

Dim main_range As Range 
Dim times_to_copy As Integer 
Dim copy_to_range As Range 

If (times_to_copy > 0) Then 
    Set main_range = ActiveSheet.Range("A36:Q36") 
    times_to_copy = ActiveSheet.Range("S36").Value 
    Set copy_to_range = main_range.Resize(times_to_copy, main_range.Columns.Count) 
    ' or Set copy_to_range = main_range.Resize(times_to_copy+1, main_range.Columns.Count) dunno 
    copy_to_range = main_range.Value 
End If 

End Sub 
Смежные вопросы