Код не работает, как ожидалось. Код VBA для копирования значений с одного листа на другой, если выполняется условие - PullRequest
0 голосов
/ 29 апреля 2019

Я пишу код VBA для копирования значений из одного листа в другой, если значения в столбце B исходного листа больше или равны 10. Я могу скопировать значения из исходного листа на целевой лист. Однако скопированные значения неверны.

Я попытался изменить условие (значения больше 10), чтобы посмотреть, каким будет результат. Значения не соответствуют ожидаемым.

Sub findValues()

Dim c As Range
Dim b As Integer
Dim Source As Worksheet
Dim Target


Set Source = ActiveWorkbook.Worksheets("Source2")
Set Target = ActiveWorkbook.Worksheets("Code Trial2")

b = 2
For Each c In Source.Range("B2:B:20")

If c.Value >= 10 Then

Source.Cells(b, "A").Copy
Target.Cells(b, "A").PasteSpecial xlPasteValues
Source.Cells(b, "B").Copy
Target.Cells(b, "B").PasteSpecial xlPasteValues

b = b + 1
End If

Next c

End Sub

Исходный лист содержит следующее: Val номер А 1 БИ 2 С 3 Д 10
Е 12 F 13

Я ожидаю, что результат будет: 10, 12, 13

Однако в Target sheet я получаю: 1, 2, 3 Фактический объем производства

1 Ответ

0 голосов
/ 29 апреля 2019

Это должно сделать это:

Option Explicit
Sub findValues()

    Dim c As Range
    Dim b As Integer
    Dim Source As Worksheet
    Dim Target As Worksheet


    Set Source = ActiveWorkbook.Worksheets("Source2")
    Set Target = ActiveWorkbook.Worksheets("Code Trial2")

    b = 2
    For Each c In Source.Range("B2:B20")
        If c.Value >= 10 Then
            Target.Cells(b, "A").Value = c.Offset(0, -1).Value
            Target.Cells(b, "B").Value = c.Value
            b = b + 1
        End If
    Next c

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...