Доброго времени суток! Назрела такая проблема: есть большой файл, где требуется внести правки через автозаполнение. Стандартным протягиванием это делать слишком затратно, поэтому, поискав, я поняла, что могут помочь макросы. Но так как я совершеннейший новичок в этом, то сама найденный код в нужный преобразовать так и не смогла. Прошу помочь в решении задачи. Отрывок из файла во вложении. Суть вопроса: в файле куча строк вида:
текст/416339?p=1
текст/12345?p=1
текст/6753?p=1
С неравномерным интервалом из пустых строк (от одной до 20-30) между строками с данными, всегда оканчивающимися на "?p=1". Нужно заполнить пустые строки протягиванием так, чтобы протягивалась предыдущая строка, а окончание строки менялось на само значение+1, то есть: текст/416339?p=1 текст/416339?p=2 текст/12345?p=1 текст/12345?p=2 текст/12345?p=3 текст/6753?p=1
и так далее. Сложность в том, что для стандартного автозаполнения код я нашла, но в этом случае строка просто копируется в пустые строки до наступления строки с новым значением, а именно протягивание-автозаполнение "окончания" строки не могу сообразить, как сделать. Помогите, пожалуйста. Найденный код, которых просто копирует предыдущие строки: [vba]
Код
Sub Проба2()
Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To LastRow If Cells(i + 1, 1) = "" Then Cells(i + 1, 1) = Cells(i, 1) End If If i + 1 = LastRow Then Exit Sub Next End Sub
[/vba]
Доброго времени суток! Назрела такая проблема: есть большой файл, где требуется внести правки через автозаполнение. Стандартным протягиванием это делать слишком затратно, поэтому, поискав, я поняла, что могут помочь макросы. Но так как я совершеннейший новичок в этом, то сама найденный код в нужный преобразовать так и не смогла. Прошу помочь в решении задачи. Отрывок из файла во вложении. Суть вопроса: в файле куча строк вида:
текст/416339?p=1
текст/12345?p=1
текст/6753?p=1
С неравномерным интервалом из пустых строк (от одной до 20-30) между строками с данными, всегда оканчивающимися на "?p=1". Нужно заполнить пустые строки протягиванием так, чтобы протягивалась предыдущая строка, а окончание строки менялось на само значение+1, то есть: текст/416339?p=1 текст/416339?p=2 текст/12345?p=1 текст/12345?p=2 текст/12345?p=3 текст/6753?p=1
и так далее. Сложность в том, что для стандартного автозаполнения код я нашла, но в этом случае строка просто копируется в пустые строки до наступления строки с новым значением, а именно протягивание-автозаполнение "окончания" строки не могу сообразить, как сделать. Помогите, пожалуйста. Найденный код, которых просто копирует предыдущие строки: [vba]
Код
Sub Проба2()
Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To LastRow If Cells(i + 1, 1) = "" Then Cells(i + 1, 1) = Cells(i, 1) End If If i + 1 = LastRow Then Exit Sub Next End Sub
Sub Проба2() Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To LastRow If Cells(i + 1, 1) = "" Then p = InStr(1, Cells(i,1), "=") If p > 0 Then Cells(i + 1, 1) = Left(Cells(i, 1), p) & (CDbl(Mid(Cells(i,1), p+1)) + 1) End If End If If i + 1 = LastRow Then Exit Sub Next End Sub
[/vba]
Что-то вроде такого: [vba]
Код
Sub Проба2() Dim LastRow As Long LastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To LastRow If Cells(i + 1, 1) = "" Then p = InStr(1, Cells(i,1), "=") If p > 0 Then Cells(i + 1, 1) = Left(Cells(i, 1), p) & (CDbl(Mid(Cells(i,1), p+1)) + 1) End If End If If i + 1 = LastRow Then Exit Sub Next End Sub