Добрый вечер!
Есть макрос, в котором прописаны формулы. Сколько будет заполненных строк в файле, я не знаю. В этом макросе я протянула формулы с учетом 50 000строк, после чего пустые мне нужно удалять, если заполненных строк меньше. Подскажите, пожалуйста, как можно прописать в макросе, что бы формула автоматически останавливалась перед первой пустой строкой, то есть, если в ячейках левее нет значений. Заранее спасибо.
Sub Контакты_тест()
'
' Контакты Макрос
'
'
'Переименовывает лист
ActiveSheet.Select
ActiveSheet.Name = "Контакты"
'Устанавливает порядок столбцов
Range("Q:R").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
Columns("G:G").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
Columns("P:P").Select
Application.CutCopyMode = False
Selection.Cut
Columns("F:F").Select
Selection.Insert Shift:=xlToRight
Columns("I:I").Select
Selection.Copy
Range("H1").Select
ActiveSheet.Paste
Columns("K:K").Select
Selection.Copy
Range("I1").Select
ActiveSheet.Paste
Range("K:W").Select
Selection.Delete Shift:=xlToLeft
'Удаляет время звонка
Columns("G:G").Select
Selection.TextToColumns Destination:=Range("G1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 4), Array(10, 9)), TrailingMinusNumbers:=True
Selection.NumberFormat = "m/d/yyyy"
'Устанавливает значение контакта
Range("J2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]=""Обещание оплаты"",""Контакт установлен"",IF(RC[-1]=""Обещание полной оплаты"",""Контакт установлен"",IF(RC[-1]=""Обещание частичной оплаты"",""Контакт установлен"",IF(RC[-1]=""Подтверждение обещания"",""Контакт установлен"",IF(RC[-1]=""Подтверждение оплаты"",""Контакт установлен"",""Контакт не установлен"")))))"
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J30000")
Columns("J:J").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Есть макрос, в котором прописаны формулы. Сколько будет заполненных строк в файле, я не знаю. В этом макросе я протянула формулы с учетом 50 000строк, после чего пустые мне нужно удалять, если заполненных строк меньше. Подскажите, пожалуйста, как можно прописать в макросе, что бы формула автоматически останавливалась перед первой пустой строкой, то есть, если в ячейках левее нет значений. Заранее спасибо.
Sub Контакты_тест()
'
' Контакты Макрос
'
'
'Переименовывает лист
ActiveSheet.Select
ActiveSheet.Name = "Контакты"
'Устанавливает порядок столбцов
Range("Q:R").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
Columns("G:G").Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
Columns("P:P").Select
Application.CutCopyMode = False
Selection.Cut
Columns("F:F").Select
Selection.Insert Shift:=xlToRight
Columns("I:I").Select
Selection.Copy
Range("H1").Select
ActiveSheet.Paste
Columns("K:K").Select
Selection.Copy
Range("I1").Select
ActiveSheet.Paste
Range("K:W").Select
Selection.Delete Shift:=xlToLeft
'Удаляет время звонка
Columns("G:G").Select
Selection.TextToColumns Destination:=Range("G1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 4), Array(10, 9)), TrailingMinusNumbers:=True
Selection.NumberFormat = "m/d/yyyy"
'Устанавливает значение контакта
Range("J2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]=""Обещание оплаты"",""Контакт установлен"",IF(RC[-1]=""Обещание полной оплаты"",""Контакт установлен"",IF(RC[-1]=""Обещание частичной оплаты"",""Контакт установлен"",IF(RC[-1]=""Подтверждение обещания"",""Контакт установлен"",IF(RC[-1]=""Подтверждение оплаты"",""Контакт установлен"",""Контакт не установлен"")))))"
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J30000")
Columns("J:J").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub