У меня есть макрос, который не удаляет правильные ячейки в определенных столбцах, в которых он мне нужен.
Sub do_it()
Dim sht As Worksheet, n As String, cell, num, tmp, rngDest As Range, i As Integer
Set sht = ActiveSheet
n = sht.Range("A1").Value i = 0
For Each cell In sht.Range("A20:A34,D20:D34,H20:H34").Cells
tmp = cell.Offset(0, 1).Value
If cell.Value = n And tmp Like "*#-#*" Then 'get the first number
num = CLng(Trim(Split(tmp, "-")(0))) 'find the next empty cell in the appropriate row
Set rngDest = sht.Cells(num, sht.Columns.Count).End(xlToLeft).Offset(0, 1)
'make sure not to add before col J
If rngDest.Column < 12 Then Set rngDest = sht.Cells(num, 12)
cell.Offset(0, 1).Copy rngDest
' This is getting the next number in A/D/H----
Set tmp = cell.Offset(1, 0)
' This is filling up B17 - F18 in order until filled
If sht.Range("B17").Value = "" Then
sht.Range("C17").Value = cell.Offset(0, 1).Value
sht.Range("B17").Value = tmp.Value
ElseIf sht.Range("C18").Value = "" Then
sht.Range("C18").Value = cell.Offset(0, 1).Value
sht.Range("B18").Value = tmp.Value
ElseIf sht.Range("E17").Value = "" Then
sht.Range("E17").Value = cell.Offset(0, 1).Value
sht.Range("D17").Value = tmp.Value
ElseIf sht.Range("E18").Value = "" Then
sht.Range("E18").Value = cell.Offset(0, 1).Value
sht.Range("D18").Value = tmp.Value
End If '---- This clears the B columns after using the value ----
Dim rg As Range, rg1 As Range
If cell.Column = 1 Then
Set rg = cell.Offset(, 1).Resize(, 1)
If cell.Column > 1 Then Set rg1 = cell.Offset(, 1).Resize(, 2)
End If
Next cell
If Not rg Is Nothing Then rg.ClearContents 'will be delete column b
«Если не rg1 - ничто, то rg1.ClearContents» будет удалять столбец e, f, g,
End Sub
Используя мое загруженное изображение Excel, мне нужно сделать следующее:
Макрос делает несколько вещей, и они работают нормально. Единственная проблема - удаление правильного столбца после процесса копирования и вставки.
Как только найденное число вводится в ячейку A1 (в данном случае 8) и находится в диапазоне ячеек A20: A34 (ячейка B34), происходит ряд вещей, которые работают нормально. Только в этом диапазоне ячеек мне нужно удалить содержимое ячейки B34 после копирования и публикации.
Когда найденное число находится в диапазонах ячеек D20: D34 и H20: H34, происходит ряд вещей, которые работают нормально. Мне нужно удалить ячейки E20 / F20 / G20 и I / J / K после выполнения функции копирования и вставки.
Лист Excel:
![enter image description here](https://i.stack.imgur.com/PbJN0.png)