VBA, как улучшить этот код и сделать его более эффективным? - PullRequest
1 голос
/ 20 мая 2019

У меня есть этот код для моего VBA Excel. я повторяю один и тот же код снова и снова, чтобы добавить свои значения из листа2 в лист1. любая помощь?

    For j = 1 To Sheet1LastRow
    For i = 1 To Sheet2LastRow
        If Worksheets("sheet1").Cells(j, 7).Value = Worksheets("sheet2 ").Cells(i, 1).Value Then
            Worksheets("sheet1").Cells(j , 11).Value = Worksheets("sheet2").Cells(i ,1 ).Value
            Worksheets("sheet1").Cells(j, 12).Value = Worksheets("sheet2").Cells(i, 2).Value
            Worksheets("sheet1").Cells(j, 13).Value = Worksheets("sheet2").Cells(i, 3).Value
            Worksheets("sheet1").Cells(j, 14).Value = Worksheets("sheet2").Cells(i, 4).Value


        Else
        End If
Next i
Next j

1 Ответ

1 голос
/ 20 мая 2019

Смежные диапазоны можно скопировать за одну операцию:

Dim sht1 As Worksheet, sht2 As Worksheet  

Set sht1  = Worksheets("Sheet1")
Set sht2  = Worksheets("Sheet2")

For j = 1 To Sheet1LastRow
    For i = 1 To Sheet2LastRow
        If sht1.Cells(j, 7).Value = sht2.Cells(i, 1).Value Then
                sht1.Cells(j, 11).Resize(1, 4).Value = _
                              sht2.Cells(i, 1).Resize(1, 4).Value
        End If
    Next i
Next j
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...