На листе1 в ячейке B4 имеется несколько данных 3 - 305679 3 - 305672 ОТКАЗ - 305531 ОТКАЗ - 305535
Необходимо на лист2 в ячеку(и) g4 скопировать первое слово и это первое слово будет равняться условию ОТКАЗ = 9 3 = 5
И в итоге надо чтобы в листе2 в ячейке(и) g4 было 5 5 9 9
[vba]
Код
Sub m() With Worksheets(1) arr = .Range("C4:B" & .Cells(Rows.Count, "C").End(xlUp).Row).Value End With For i2 = 1 To UBound(arr) If arr(i2, 1) <> "" Then arr(i2, 1) = Split(arr(i2, 1))(0) Next Worksheets(2).Range("G4").Resize(UBound(arr), 1) = arr End Sub
[/vba]
[moder]1. Читайте Правила форума 2. Исправляйте оформление кода (его нужно обрамлять специальными тегами - кнопка #) 3. Прикладывайте файл-пример (2. и 3. содержатся в 1.) [p.s.]И Вам здравствуйте[/p.s.][/moder]
На листе1 в ячейке B4 имеется несколько данных 3 - 305679 3 - 305672 ОТКАЗ - 305531 ОТКАЗ - 305535
Необходимо на лист2 в ячеку(и) g4 скопировать первое слово и это первое слово будет равняться условию ОТКАЗ = 9 3 = 5
И в итоге надо чтобы в листе2 в ячейке(и) g4 было 5 5 9 9
[vba]
Код
Sub m() With Worksheets(1) arr = .Range("C4:B" & .Cells(Rows.Count, "C").End(xlUp).Row).Value End With For i2 = 1 To UBound(arr) If arr(i2, 1) <> "" Then arr(i2, 1) = Split(arr(i2, 1))(0) Next Worksheets(2).Range("G4").Resize(UBound(arr), 1) = arr End Sub
[/vba]
[moder]1. Читайте Правила форума 2. Исправляйте оформление кода (его нужно обрамлять специальными тегами - кнопка #) 3. Прикладывайте файл-пример (2. и 3. содержатся в 1.) [p.s.]И Вам здравствуйте[/p.s.][/moder]dmr
Sub tst() Dim ar1() i_n& = Worksheets(1).Cells(Rows.count, 2).End(xlUp).Row ar2 = Worksheets(1).Cells(1, 2).Resize(i_n).Value ReDim ar1(i_n) For i& = 4 To i_n ar1(i) = Split(ar2(i, 1)) If UCase(ar1(i)(0)) = "ОТКАЗ" Then ar1(i)(0) = 9 ElseIf ar1(i)(0) = "3" Then ar1(i)(0) = 5 Else ar1(i)(0) = "" End If Worksheets(2).Cells(i, 2) = ar1(i)(0) Next i End Sub
[/vba]
Такой Вариант: [vba]
Код
Sub tst() Dim ar1() i_n& = Worksheets(1).Cells(Rows.count, 2).End(xlUp).Row ar2 = Worksheets(1).Cells(1, 2).Resize(i_n).Value ReDim ar1(i_n) For i& = 4 To i_n ar1(i) = Split(ar2(i, 1)) If UCase(ar1(i)(0)) = "ОТКАЗ" Then ar1(i)(0) = 9 ElseIf ar1(i)(0) = "3" Then ar1(i)(0) = 5 Else ar1(i)(0) = "" End If Worksheets(2).Cells(i, 2) = ar1(i)(0) Next i End Sub
Скажите если полностью ячейку нужно заменить, все заменяется но выходит ошибка Subscript of range
В ячейке в первом листе слово ОМС, его нужно заменить на 1
[vba]
Код
'Копируем код и его переделываем ОМС на свой с условием i_n& = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row ar2 = Worksheets(1).Cells(1, 14).Resize(i_n).Value ReDim ar1(i_n) For i& = 4 To i_n ar1(i) = Split(ar2(i, 1)) If UCase(ar1(i)(0)) = "ОМС" Then ar1(i)(0) = 1 ElseIf ar1(i)(0) = "3" Then ar1(i)(0) = 5 Else ar1(i)(0) = "" End If Worksheets(2).Cells(i, 8) = ar1(i)(0) Next i End Sub
[/vba]
Скажите если полностью ячейку нужно заменить, все заменяется но выходит ошибка Subscript of range
В ячейке в первом листе слово ОМС, его нужно заменить на 1
[vba]
Код
'Копируем код и его переделываем ОМС на свой с условием i_n& = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row ar2 = Worksheets(1).Cells(1, 14).Resize(i_n).Value ReDim ar1(i_n) For i& = 4 To i_n ar1(i) = Split(ar2(i, 1)) If UCase(ar1(i)(0)) = "ОМС" Then ar1(i)(0) = 1 ElseIf ar1(i)(0) = "3" Then ar1(i)(0) = 5 Else ar1(i)(0) = "" End If Worksheets(2).Cells(i, 8) = ar1(i)(0) Next i End Sub
Понять не могу: это другой вопрос или продолжение этого вопроса? Походу все же другой. dmr, создайте лучше новую тему с этим вопросом. Решение уже есть
Понять не могу: это другой вопрос или продолжение этого вопроса? Походу все же другой. dmr, создайте лучше новую тему с этим вопросом. Решение уже естькитин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
dmr, а "ОМС" у Вас должен лежать в 14 столбце? Предположу, что там некоторые ячейки пустые. Тогда можно проверить: [vba]
Код
Sub dsd() Dim ar1() 'Копируем код и его переделываем ОМС на свой с условием i_n& = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row ar2 = Worksheets(1).Cells(1, 14).Resize(i_n).Value ReDim ar1(i_n) For i& = 4 To i_n If ar2(i, 1) <> "" Then ar1(i) = Split(ar2(i, 1)) If UCase(ar1(i)(0)) = "ОМС" Then ar1(i)(0) = 1 ElseIf ar1(i)(0) = "3" Then ar1(i)(0) = 5 Else ar1(i)(0) = "" End If Worksheets(2).Cells(i, 8) = ar1(i)(0) End If Next i End Sub
[/vba]
dmr, а "ОМС" у Вас должен лежать в 14 столбце? Предположу, что там некоторые ячейки пустые. Тогда можно проверить: [vba]
Код
Sub dsd() Dim ar1() 'Копируем код и его переделываем ОМС на свой с условием i_n& = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row ar2 = Worksheets(1).Cells(1, 14).Resize(i_n).Value ReDim ar1(i_n) For i& = 4 To i_n If ar2(i, 1) <> "" Then ar1(i) = Split(ar2(i, 1)) If UCase(ar1(i)(0)) = "ОМС" Then ar1(i)(0) = 1 ElseIf ar1(i)(0) = "3" Then ar1(i)(0) = 5 Else ar1(i)(0) = "" End If Worksheets(2).Cells(i, 8) = ar1(i)(0) End If Next i End Sub
dmr, По правилам форума: 1 вопрос - 1 тема. Этот вопрос уже к Вашему текущему не относится. И при создании тем на других форумах, стоит указать о Кроссе (это вежливо). [moder]Согласен, формально да, но не совсем. Все-таки связь некоторая есть. Да и мелочь такая ...
dmr, По правилам форума: 1 вопрос - 1 тема. Этот вопрос уже к Вашему текущему не относится. И при создании тем на других форумах, стоит указать о Кроссе (это вежливо). [moder]Согласен, формально да, но не совсем. Все-таки связь некоторая есть. Да и мелочь такая ...Roman777