VBA Excel - сравнение двух значений в одной строке и выполнение действий на основе результата - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в VBA в Excel, и у меня есть проблема, которая на некоторое время меня озадачила. На моем листе Excel (в той же строке) у меня есть столбцы B и F, где: если значение B выше, чем F, вставьте строку под текущей строкой и вырежьте / вставьте три столбца этой строки во вновь созданную строку (см. ссылку на изображение: https://i.stack.imgur.com/cRZbY.png), поэтому B11: D11 станет B12: D12, а выше эти ячейки будут тремя пустыми ячейками. Я пробовал для этого приведенный ниже код, но все время получаю ошибку 1004: Ошибка метода PasteSpecial класса Range. Я подозреваю, что это как-то связано с PasteSpecial, но раньше он работал у меня.

Sub SubA()
Range("B11").Activate
If Range("B11").Value > Range("F11").Value Then ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown
Range(Selection, Selection.End(xlToRight)).Cut
ActiveCell.Offset(1).PasteSpecial Paste:=xlPasteValues

End Sub

Если я могу исправить это для первой строки, я бы хотел, чтобы он проделал тот же процесс для всех строк в таблице, однако я тоже не уверен, как это начать. Любая помощь приветствуется! Спасибо.

РЕДАКТИРОВАТЬ: Конечный результат должен выглядеть так: https://i.stack.imgur.com/SXqg9.png Было еще несколько бит кода, которые я собирался сделать после того, как выше l oop был отсортирован заставить его выглядеть так, как показано выше. По сути, любые уникальные номера сварных швов должны иметь свою собственную строку, а любые совпадающие номера сварных швов должны быть в одной строке (в порядке возрастания).

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