Появилась следующая проблема. К сожалению, собственных навыков не хватает для ее решения.
Есть два условия и одна строка. Первое условие задает с какого столбца начинается заполнение строки. Второе - до какого столбца она заполняется. Например, если в строке 100 столбцов, условие1 =10, условие2 =3, то должны остаться заполненными только столбцы с 4 по 10, с 14 по 20, с 24 по 30 и тд. Из столбцов 1-3, 11-13, 21-23 и т.д требуется удалить данные.
Условие 1 может быть в диапазоне от 1 до 100. Условие 2 - от 1 до 10. При изменении этих условий хотелось, чтобы автоматически удалялись данные из нужных ячеек.
Подскажите, возможно ли решение данное задачи с помощью макроса?
Sub Макрос2()
n = Range("B2")
m = Range("B3")
i = 1
For Each c In Range(Cells(5, 2), Cells(5, Cells(5, Columns.Count).End(xlToLeft).Column))
If i > n Then i = 1
If i <= m Then c.Offset(1, 0) = ""
i = i + 1
Next
End Sub
Sub DelDann()
Dim iLastCol As Integer
Dim j As Long
iLastCol = Cells(5, Columns.Count).End(xlToLeft).Column
For j = iLastCol To 2 Step -1
If Cells(5, j).Value Mod Range("B2") > 0 And Cells(5, j).Value Mod Range("B2") <= Range("B3") Then
Columns(j).Delete
End If
Next
End Sub
Sub Макрос3()
Dim rng As Range, с As Range, n As Byte, m As Byte, cc As Integer, rr As Integer, i As Integer
n = Range("B2")
m = Range("B3")
cc = Cells(5, Columns.Count).End(xlToLeft).Column
rr = Cells(Rows.Count, 1).End(xlUp).Row - 5
i = 1
For Each c In Range(Cells(5, 2), Cells(5, cc))
If i > n Then i = 1
If i <= m Then If rng Is Nothing Then Set rng = Range(c.Offset(1, 0), c.Offset(rr, 0)) Else Set rng = Union(rng, Range(c.Offset(1, 0), c.Offset(rr, 0)))
i = i + 1
Next
If Not rng Is Nothing Then rng.ClearContents
End Sub
Sub Макрос1()
n = Range("c6")
m = Range("c7")
i = 1
For Each c In Range(Cells(14, 2), Cells(14, Cells(14, Columns.Count).End(xlToLeft).Column))
If i > n Then i = 1
If i <= m Then c.Offset(2, 0) = ""
i = i + 1
Next
End Sub
Sub iClearDann()
Dim iLastCol As Integer
Dim j As Long
iLastCol = Cells(14, Columns.Count).End(xlToLeft).Column
For j = iLastCol To 2 Step -1
If Cells(14, j).Value Mod Range("C6") > 0 And Cells(14, j).Value Mod Range("C6") <= Range("C7") Then
Cells(16, j).ClearContents
End If
Next
End Sub