Изменение макроса для исправления определенных столбцов, не удаляемых - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть макрос, который не удаляет правильные ячейки в определенных столбцах, в которых он мне нужен.

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

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