VBA Excel для каждого цикла

Вложенные циклы должны взять точку, найти ее описание и записать в другой столбец. У меня проблема только в значении B20 написано в C10:C20, Если я изменю четвертую строку на b.value, он работает правильно для вывода, но в неправильном столбце, поэтому я считаю, что это проблема зацикливания, но я не вижу решения.

For Each b In Worksheets("Device").Range("B10:B20").Cells
    For Each c In Worksheets("Device").Range("C10:C20").Cells
        Set pt = srv.PIPoints(b.Value)
        c.Value = pt.PointAttributes.Item("descriptor")
    Next
Next

1 ответ

Решение

Попробуйте использовать это вместо этого:

For Each b in WorkSheets("Device").Range("B10:B20").Cells   
    Set pt = srv.PIPoints(b.Value)
    b.Offset(,1).Value = pt.PointAttributes.Item("descriptor")
Next

где b.Offset(,1) дает вам ячейку один столбец справа от bт.е. если b указывает на B11 затем b.Offset(,1) указывает на C11

Другие вопросы по тегам