Здравствуйте, требуется исходя из того, какие значения находятся в диапазоне, заполнить конкретные ячейки. На словах примерно так это понимаю: Если в диапазоне есть код 10, то в ячейке А1 поставить 1, если в диапазоне есть код 11, то в ячейке А2 поставить 2 ну и т.д. Также уточнение, что диапазон в котором просматриваются коды находится на 2 Листе
Здравствуйте, требуется исходя из того, какие значения находятся в диапазоне, заполнить конкретные ячейки. На словах примерно так это понимаю: Если в диапазоне есть код 10, то в ячейке А1 поставить 1, если в диапазоне есть код 11, то в ячейке А2 поставить 2 ну и т.д. Также уточнение, что диапазон в котором просматриваются коды находится на 2 Листеegorrr907
Сообщение отредактировал egorrr907 - Понедельник, 27.02.2023, 11:32
MikeVol, да, так на словах не очень объяснил. На 1 листе в диапазоне G4:P23 введены коды дефектов, на 2 листе, эти же дефекты разнесены по столбцам, то есть условно могу сказать, код 28 это столбец BL на 2 листе, код 51 это столбец J и т.д. Вот мне нужно по строкам заполнить Лист 2, но так, чтобы в столбце дефекта стояла единица. Макрос проверяет диапазон на Листе 1, видит коды и в ячейки соответствующие названию дефекта ставит 1. Также, забыл учесть нюанс, что если в диапазоне G-P нет вообще кодов, то поставить единицу в столбце H Лист 2. Вот как-то так попытался объяснить. Файл прикладываю
MikeVol, да, так на словах не очень объяснил. На 1 листе в диапазоне G4:P23 введены коды дефектов, на 2 листе, эти же дефекты разнесены по столбцам, то есть условно могу сказать, код 28 это столбец BL на 2 листе, код 51 это столбец J и т.д. Вот мне нужно по строкам заполнить Лист 2, но так, чтобы в столбце дефекта стояла единица. Макрос проверяет диапазон на Листе 1, видит коды и в ячейки соответствующие названию дефекта ставит 1. Также, забыл учесть нюанс, что если в диапазоне G-P нет вообще кодов, то поставить единицу в столбце H Лист 2. Вот как-то так попытался объяснить. Файл прикладываюegorrr907
MikeVol, задать в макросе, что определенный код вносится только в определенный столбец, я примеры кодов и к какому столбцу относятся приложил. Код 28 на Листе1 соответствует столбцу BL на Листе2, т.е. если в диапазоне из Листа1 встречается 28, то поставить единицу в столбце BL Листа 2, Остальной список кодов там более 20 штук, я бы сделал по примеру.
MikeVol, задать в макросе, что определенный код вносится только в определенный столбец, я примеры кодов и к какому столбцу относятся приложил. Код 28 на Листе1 соответствует столбцу BL на Листе2, т.е. если в диапазоне из Листа1 встречается 28, то поставить единицу в столбце BL Листа 2, Остальной список кодов там более 20 штук, я бы сделал по примеру.egorrr907
egorrr907, код выше не работает, проверил. Вот пробуйте: [vba]
Код
Option Explicit
Sub egorr_2() Dim rng As Range Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Лист1") Dim sh As Worksheet: Set sh = ThisWorkbook.Worksheets("Лист2") Dim i As Long, j As Long
With ws
For i = 4 To .Cells(.Rows.Count, 7).End(xlUp).Row
For j = 7 To 16
If .Cells(i, j).Value = 28 Then sh.Cells(i - 2, 64).Value = 1 ElseIf .Cells(i, j).Value = 51 Then sh.Cells(i - 2, 10).Value = 2 ' и т.д.продолжаете с ElseIf End If
Next
Next
If .Range("G4:P" & .Cells(.Rows.Count, 1).End(xlUp).Row).Find("*") Is Nothing Then sh.Range("H2").Value = 1 sh.Range("H2").AutoFill Destination:=sh.Range("H2:H" & .Cells(.Rows.Count, 1).End(xlUp).Row), Type:=xlFillDefault End If
End With
End Sub
[/vba]
Вроде бы то что вы просили. Удачи.
egorrr907, код выше не работает, проверил. Вот пробуйте: [vba]
Код
Option Explicit
Sub egorr_2() Dim rng As Range Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Лист1") Dim sh As Worksheet: Set sh = ThisWorkbook.Worksheets("Лист2") Dim i As Long, j As Long
With ws
For i = 4 To .Cells(.Rows.Count, 7).End(xlUp).Row
For j = 7 To 16
If .Cells(i, j).Value = 28 Then sh.Cells(i - 2, 64).Value = 1 ElseIf .Cells(i, j).Value = 51 Then sh.Cells(i - 2, 10).Value = 2 ' и т.д.продолжаете с ElseIf End If
Next
Next
If .Range("G4:P" & .Cells(.Rows.Count, 1).End(xlUp).Row).Find("*") Is Nothing Then sh.Range("H2").Value = 1 sh.Range("H2").AutoFill Destination:=sh.Range("H2:H" & .Cells(.Rows.Count, 1).End(xlUp).Row), Type:=xlFillDefault End If
MikeVol, большое спасибо, но с "Иначе" она все равно ставит 1 в тех строках, где не должно быть, поскольку пустые ячейки встречаются в иных диапазонах, можно ли как-то задать условие что только весь диапазон пустой, а если уже что-то есть, то не ставить
MikeVol, большое спасибо, но с "Иначе" она все равно ставит 1 в тех строках, где не должно быть, поскольку пустые ячейки встречаются в иных диапазонах, можно ли как-то задать условие что только весь диапазон пустой, а если уже что-то есть, то не ставитьegorrr907
MikeVol, снова почему-то не хочет работать именно эта функция. Ещё могу Вам вопрос задать немного не по этой теме, как мне скопировать ячейки также из одного листа в другой с помощью макроса, к примеру из листа 1 перенести адреса также в лист 2 ну и прочие значения
MikeVol, снова почему-то не хочет работать именно эта функция. Ещё могу Вам вопрос задать немного не по этой теме, как мне скопировать ячейки также из одного листа в другой с помощью макроса, к примеру из листа 1 перенести адреса также в лист 2 ну и прочие значенияegorrr907