Копиране на данни в цикъл чрез VBA Excel

1 одобрение 0 неодобрения
попитан 26 юли в VBA от valionn ученик (32 точки)

Здравейте Колеги, трябва ми следния VBA код:

1.Копира цифри от таблица първи ред от колона С до F на Sheet1

2.Paste в Sheet 2 в A2:D2 

3.Копира клетки с резултата от Sheet2 от А4:C4

4.Paste резултата от Sheet2 срещу първия ред на Sheet 1 от H до J

5.Продължава със следващия ред C:F до края таблицата докато запълни всичко от H до J с/у таблица от Sheet1

 

2 отговори

2 одобрения 0 неодобрения
отговорени 27 юли от vbafreak експерт (202 точки)
избран 27 юли от BgExcelAdmin
 
Най-добър отговор

Ето един вариант с цикъл:

Sub CopyExcelTableInALoop()
Dim i As Integer
'Set counter for the current row
i = 1
    'Loop through rows 1-10 in Sheet1
    For i = 1 To 10
        'Copy cells C1-F1 from Sheet1 to cells A2-D2 in Sheet 2
        Worksheets("Sheet2").Cells(2, 1).Value = Worksheets("Sheet1").Cells(i, 3).Value
        Worksheets("Sheet2").Cells(2, 2).Value = Worksheets("Sheet1").Cells(i, 4).Value
        Worksheets("Sheet2").Cells(2, 3).Value = Worksheets("Sheet1").Cells(i, 5).Value
        Worksheets("Sheet2").Cells(2, 4).Value = Worksheets("Sheet1").Cells(i, 6).Value
        
        'Copy cells A4-D4 from Sheet2 to cells H1-J1 in Sheet1
        Worksheets("Sheet1").Cells(i, 8).Value = Worksheets("Sheet2").Cells(4, 1).Value
        Worksheets("Sheet1").Cells(i, 9).Value = Worksheets("Sheet2").Cells(4, 2).Value
        Worksheets("Sheet1").Cells(i, 10).Value = Worksheets("Sheet2").Cells(4, 3).Value
        'Go to next row
    Next
End Sub

1 коментар

коментиран 27 юли от valionn ученик (32 точки)
Благодаря, много ми помогна! Върши отлична работа. Поздрави
1 одобрение 0 неодобрения
отговорени 27 юли от Badan експерт (223 точки)

Здравей,

Следният примерен код копира данните от Sheet1 в Sheet2 и взима други данни от Sheet2, които копира в Sheet1:

Sub CopyCellsToAnotherWorkSheet()
Sheets("Sheet1").Select
Worksheets("Sheet2").Range("A2:D2").Value = Worksheets("Sheet1").Range("C1:F1").Value
Worksheets("Sheet1").Range("H1:J1").Value = Worksheets("Sheet2").Range("A4:D4").Value
End Sub

Остава само да го направиш да се изпълнява в цикъл. Успех!
 

1 коментар

коментиран 27 юли от valionn ученик (32 точки)
Благодаря, точно това ми трябва, но май и цикъла ми е проблем.  Поздрави
Добре дошли в българския форум за Ексел и Майкрософт офис! Тук можете да питате хора със знания и опит, както и да споделите знанията и опита си с другите.
...