2015-01-24 2 views
0

Я пытаюсь скопировать значение из двух конкретных ячеек в определенные ячейки на другом листе. Проблема в том, что у меня много ячеек на первом листе, а некоторые из них пустые. Также вставка всегда 99 раз, только изменения диапазона. Есть ли цикл, чтобы сделать все более легким?Скопируйте содержимое ячейки и вставьте ее на другой лист несколько раз

Вот моя попытка

Sub copytry() 

Worksheets("sheetI").Range("I17:J17").Copy _ 
Destination:=Worksheets("sheetII").Range("F1352:F1451") 
Worksheets("sheetI").Range("I18:J18").Copy _ 
Destination:=Worksheets("sheetII").Range("F1452:F151") 

End Sub 
+0

* Есть петля, чтобы сделать все более легко? * Да. VBA имеет несколько операторов цикла или управления потоком. 'Для каждого .. Далее' или' Для ... Далее', вероятно, будет полезно, см. [Здесь] (http://www.databison.com/vba-for-loop-for-next-and-for-each -в-next /) для примеров. –

ответ

0

Практика использования этого

Sub copytry() 
    Dim ws As Worksheet 
    Dim sh As Worksheet, lstrw As Long 
    Dim Rws As Long, Rng As Range, c As Range 

    Set ws = Worksheets("sheetI") 
    Set sh = Worksheets("sheetII") 

    With ws 

     Rws = .Cells(Rows.Count, "I").End(xlUp).Row 
     Set Rng = .Range(.Cells(17, "I"), .Cells(Rws, "I")) 
     For Each c In Rng.Cells 
      If c = "" Then c = "." 'Added to Code 
      lstrw = sh.Cells(Rows.Count, "A").End(xlUp).Row + 1 
      c.Range("A1:B1").Copy Destination:=sh.Range(sh.Cells(lstrw, 1), sh.Cells(lstrw + 99, 1)) 

     Next c 

    End With 

End Sub 
+0

Спасибо за ответ. Ваш код работает, и я адаптировал его к моим потребностям. Остается только одно: оно не копирует и не вставляет пустые ячейки на «sheetII». Он должен сделать это, поскольку это те значения, которые отсутствуют, и мне нужно их вручную вставить. Можно ли обновить этот код, чтобы скопировать и вставить также отсутствующие значения (пустые ячейки)? – Vinko

+0

Я отредактировал код, если c = "", тогда c = ".", Вы можете изменить его на пробел, если хотите, например c = "". Код ищет первую пустую ячейку в столбце A SheetII, поэтому мы должны что-то заменить пустые ячейки. – Davesexcel

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