Я пытаюсь настроить код в Excel с помощью VBA для копирования ячеек больше "0" из столбца "H" и вставки содержимого в ячейку в столбце "G". Например, если "H2" больше "0", то вырезать и вставить в "G2" и так далее. Кажется, я не могу найти ничего, что сработает. Любая помощь будет очень кстати.
решение1
Чтобы вам было легче, о том, как копировать и вставлять с помощью VBA, посмотрите на следующее:
Sub Copy_paste()
ThisWorkbook.Sheets("Sheet1").Range("A1").Copy
ThisWorkbook.Sheets("Sheet1").Range("B1").Select
ThisWorkbook.Sheets("Sheet1").Paste
End Sub
Это должно быть довольно просто, но все, что помещено в «A1», является источником для копирования, а все, что помещено в «B1», является местом назначения. Кстати,резатьвместокопия, просто замените .Copy на .Cut.
Что касается вашей логики "больше чем" и т. п., просто добавьте несколько логических операторов вокруг метода копирования/вставки, который я показал выше. Например, чтобы скопировать A1 в B1, если A1 больше 2:
Sub Copy_paste()
If ThisWorkbook.Sheets("Sheet1").Range("A1") > 2 Then
ThisWorkbook.Sheets("Sheet1").Range("A1").Copy
ThisWorkbook.Sheets("Sheet1").Range("B1").Select
ThisWorkbook.Sheets("Sheet1").Paste
End If
End Sub
Примечание
Также обратите внимание, что вы можете ссылаться на ячейку многими разными способами. Следующие являются синонимами, если все происходит в одной и той же рабочей книге:
- ЭтаКнига.Листы("Лист1").Диапазон("A1")
- Диапазон("'Лист1'!A1")
- ЭтаКнига.Листы("Лист1").Ячейки(1,1)
- Листы("Лист1").Ячейки(1,1)
- Листы("Лист1").Диапазон("A1")