Может кто помочь и написать макрос со следующими задачами:
1 задача. При выделении диапазона ячеек с 1 по 15 строчку столбца №1 нужно, чтобы программа/макрос натыкаясь на пустые строчки в этом столбце прописывала в столбец №3 значение "М1", при следующей пустой значение "М2" и т.д. Если в столбце №1 есть значения то прописывается "А1", после того как встречается пустая и за ней строки со значениями прописывается уже "А2" и так до конца выделенного диапазона.
2 задача. При выделении диапазона ячеек с 1 по 15 строчку столбца №2 нужно, чтобы программа/макрос натыкаясь на значение "В" прописывал в столбец №3 значение "М1" и ниже проставляются значения "А1" до того как встретится значение "D", при повторной встрече значения "В" прописывается уже "М2" и далее "А2".
Если это дико сложно, то подскажите хотя бы на куски кода. А то я с языком VBA не знаком совсем. Буду очень благодарен!
Вспомогательный рисунок.
Добрый день!
Может кто помочь и написать макрос со следующими задачами:
1 задача. При выделении диапазона ячеек с 1 по 15 строчку столбца №1 нужно, чтобы программа/макрос натыкаясь на пустые строчки в этом столбце прописывала в столбец №3 значение "М1", при следующей пустой значение "М2" и т.д. Если в столбце №1 есть значения то прописывается "А1", после того как встречается пустая и за ней строки со значениями прописывается уже "А2" и так до конца выделенного диапазона.
2 задача. При выделении диапазона ячеек с 1 по 15 строчку столбца №2 нужно, чтобы программа/макрос натыкаясь на значение "В" прописывал в столбец №3 значение "М1" и ниже проставляются значения "А1" до того как встретится значение "D", при повторной встрече значения "В" прописывается уже "М2" и далее "А2".
Если это дико сложно, то подскажите хотя бы на куски кода. А то я с языком VBA не знаком совсем. Буду очень благодарен!
Sub uuu() m = 1 a = 1 For Each c In Selection If c = "" Then c.Offset(0, 1) = "М" & m m = m + 1 End If If c <> "" Then c.Offset(0, 1) = "А" & a a = a + 1 End If Next End Sub
[/vba]
Макрос для вспомогательного файла [vba]
Код
Sub uuu() m = 1 a = 1 For Each c In Selection If c = "" Then c.Offset(0, 1) = "М" & m m = m + 1 End If If c <> "" Then c.Offset(0, 1) = "А" & a a = a + 1 End If Next End Sub
подскажите хотя бы на куски кода. А то я с языком VBA не знаком совсем.
Вот еще кусок, правда целый. [vba]
Код
Sub Задача_1() If Selection.Column <> 1 Then Exit Sub If Selection.Rows.Count < 2 Then Exit Sub Range("C:C").ClearContents Dim M&, A&, I& M = 1: A = 1 For I = Selection.Row To Selection.Row + Selection.Rows.Count - 1 If Cells(I, 1) = "" Then Cells(I, 3) = "M" & M: M = M + 1 Else Cells(I, 3) = "A" & A: A = A + 1 End If Next End Sub
подскажите хотя бы на куски кода. А то я с языком VBA не знаком совсем.
Вот еще кусок, правда целый. [vba]
Код
Sub Задача_1() If Selection.Column <> 1 Then Exit Sub If Selection.Rows.Count < 2 Then Exit Sub Range("C:C").ClearContents Dim M&, A&, I& M = 1: A = 1 For I = Selection.Row To Selection.Row + Selection.Rows.Count - 1 If Cells(I, 1) = "" Then Cells(I, 3) = "M" & M: M = M + 1 Else Cells(I, 3) = "A" & A: A = A + 1 End If Next End Sub
Sub Задача_1() If Selection.Column <> 1 Then Exit Sub If Selection.Rows.Count < 2 Then Exit Sub Range("C:C").ClearContents Dim M&, A&, I&, MM&, AA& Dim flag1 As Boolean, flag2 As Boolean For I = Selection.Row To Selection.Row + Selection.Rows.Count - 1 If Cells(I, 1) = "" Then If Not flag1 Then MM = MM + 1 M = MM flag1 = True flag2 = False End If Cells(I, 3) = "M" & M Else If Not flag2 Then AA = AA + 1 A = AA flag2 = True flag1 = False End If Cells(I, 3) = "A" & A End If Next End Sub
[/vba]
Чтой-то мне кажется, что так надоть. [vba]
Код
Sub Задача_1() If Selection.Column <> 1 Then Exit Sub If Selection.Rows.Count < 2 Then Exit Sub Range("C:C").ClearContents Dim M&, A&, I&, MM&, AA& Dim flag1 As Boolean, flag2 As Boolean For I = Selection.Row To Selection.Row + Selection.Rows.Count - 1 If Cells(I, 1) = "" Then If Not flag1 Then MM = MM + 1 M = MM flag1 = True flag2 = False End If Cells(I, 3) = "M" & M Else If Not flag2 Then AA = AA + 1 A = AA flag2 = True flag1 = False End If Cells(I, 3) = "A" & A End If Next End Sub
Ото ж! Был бы пример в файле, а не на картинке, мож и узрел бы, что не правильно сделал и сделал бы правильно. Такой вариант:
[vba]
Код
Sub Задача_1() If Selection.Column <> 1 Then Exit Sub If Selection.Rows.Count < 2 Then Exit Sub Range("C:C").ClearContents Dim M&, A&, I&, X&, Y& M = 0: A = 0: X = 1: Y = 1 For I = Selection.Row To Selection.Row + Selection.Rows.Count - 1 If Cells(I, 1) = "" Then X = 1 If X = 1 And Y = 1 Then M = M + 1 Y = 0 Cells(I, 3) = "M" & M Else Y = 1 If X = 1 And Y = 1 Then A = A + 1 X = 0 Cells(I, 3) = "A" & A End If Next End Sub
Ото ж! Был бы пример в файле, а не на картинке, мож и узрел бы, что не правильно сделал и сделал бы правильно. Такой вариант:
[vba]
Код
Sub Задача_1() If Selection.Column <> 1 Then Exit Sub If Selection.Rows.Count < 2 Then Exit Sub Range("C:C").ClearContents Dim M&, A&, I&, X&, Y& M = 0: A = 0: X = 1: Y = 1 For I = Selection.Row To Selection.Row + Selection.Rows.Count - 1 If Cells(I, 1) = "" Then X = 1 If X = 1 And Y = 1 Then M = M + 1 Y = 0 Cells(I, 3) = "M" & M Else Y = 1 If X = 1 And Y = 1 Then A = A + 1 X = 0 Cells(I, 3) = "A" & A End If Next End Sub