На первом листе есть значения. По одному из них (в этом случае по значению = fffff) Нужно на листе 2 напротив него же выстроить соответствующие ему значения. Как, например, на листе1 в 28 ряду. Предполагается, что эти значения на листе1 по расположению будут "константны", т.е. никуда не будут смещаться. А само значение, по которому нужно будет искать - будет выше. ниже в столбце 1 листа2. Подскажите, пожалуйста, как это сделать? В приложенном примере мой "код"...
На первом листе есть значения. По одному из них (в этом случае по значению = fffff) Нужно на листе 2 напротив него же выстроить соответствующие ему значения. Как, например, на листе1 в 28 ряду. Предполагается, что эти значения на листе1 по расположению будут "константны", т.е. никуда не будут смещаться. А само значение, по которому нужно будет искать - будет выше. ниже в столбце 1 листа2. Подскажите, пожалуйста, как это сделать? В приложенном примере мой "код"...ant6729
Здравствуйте) Все правильно, Pelena, спасибо!!! (18) - это lr-6 (условно так)
PS Единственное, что не понятно.... Так это вот...
[vba]
Код
Sub rrr() Dim i&
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lr If Sheets("Лист1").Cells(i, 10).Value = "r" Then Sheets("Лист1").Cells(i, 17).Offset(-1, 0).Value = Sheets("Лист1").Cells(i, 11).Value End If Next i
End Sub
[/vba]
.... тут оно ищет соответствующие показатели, а в данном примере этой темы с этой логикой искать и работать не хочет... Эта "логика" с cells(i,x) она что ли только в рамках одного рабочего листа работает? Хотя есть пример, что она сопоставляет значения Пример из другой темы, код Boroda_: [vba]
Код
Sub rrr() lr1 = Sheets("Лист1").Cells(Rows.Count, 6).End(xlUp).Row lr2 = Sheets("Лист2").Cells(Rows.Count, 2).End(xlUp).Row For i = 1 To lr1 For J = 1 To lr2 If Sheets("Лист2").Cells(J, 2).Value = Sheets("Лист1").Cells(i, 5).Value Then Sheets("Лист1").Cells(i, 5).Interior.Color = RGB(204, 204, 255) End If Next J Next i End Sub
[/vba]
То есть я ее по разном использовал уже в данном примере, но не хотело оно ставить напротив значения, которое ищу (это конкретное значение с лист1 из конкретной ячейки = fffff) в лист2 offset ами значения нужных ячеек...
Я тут как-то не понял...
Pelena, еще раз спасибо!!!
Здравствуйте) Все правильно, Pelena, спасибо!!! (18) - это lr-6 (условно так)
PS Единственное, что не понятно.... Так это вот...
[vba]
Код
Sub rrr() Dim i&
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lr If Sheets("Лист1").Cells(i, 10).Value = "r" Then Sheets("Лист1").Cells(i, 17).Offset(-1, 0).Value = Sheets("Лист1").Cells(i, 11).Value End If Next i
End Sub
[/vba]
.... тут оно ищет соответствующие показатели, а в данном примере этой темы с этой логикой искать и работать не хочет... Эта "логика" с cells(i,x) она что ли только в рамках одного рабочего листа работает? Хотя есть пример, что она сопоставляет значения Пример из другой темы, код Boroda_: [vba]
Код
Sub rrr() lr1 = Sheets("Лист1").Cells(Rows.Count, 6).End(xlUp).Row lr2 = Sheets("Лист2").Cells(Rows.Count, 2).End(xlUp).Row For i = 1 To lr1 For J = 1 To lr2 If Sheets("Лист2").Cells(J, 2).Value = Sheets("Лист1").Cells(i, 5).Value Then Sheets("Лист1").Cells(i, 5).Interior.Color = RGB(204, 204, 255) End If Next J Next i End Sub
[/vba]
То есть я ее по разном использовал уже в данном примере, но не хотело оно ставить напротив значения, которое ищу (это конкретное значение с лист1 из конкретной ячейки = fffff) в лист2 offset ами значения нужных ячеек...
В первом случае один цикл, одна переменная для номера строки i, поэтому если Вы укажете другой лист, ячейка будет браться с другого листа, но с той же строки i. А это неверно, ведь не факт, что fffff и на первом, и на втором листе находятся на одной строке. Во втором случае две переменные i и j. Одна для перебора строк на первом листе, а другая - на втором. [p.s.]Если я правильно поняла вопрос[/p.s.]
В первом случае один цикл, одна переменная для номера строки i, поэтому если Вы укажете другой лист, ячейка будет браться с другого листа, но с той же строки i. А это неверно, ведь не факт, что fffff и на первом, и на втором листе находятся на одной строке. Во втором случае две переменные i и j. Одна для перебора строк на первом листе, а другая - на втором. [p.s.]Если я правильно поняла вопрос[/p.s.]Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
a = Sheets("Лист1").Cells(1, 5).Value b = Sheets("Лист1").Cells(3, 5).Value c = Sheets("Лист1").Cells(2, 10).Value d = lr1
If Sheets("Лист2").Cells(i, 1).Value = Sheets("Лист1").Cells(j, 5).Value Then
Sheets("Лист2").Cells(i, 3).Value = a Sheets("Лист2").Cells(i, 4).Value = b Sheets("Лист2").Cells(i, 5).Value = c
End If End Sub
[/vba]
Вот строка:
[vba]
Код
If Sheets("Лист2").Cells(i, 1).Value = Sheets("Лист1").Cells(j, 5).Value Then
[/vba]
Перебираются ячейки в i листа2 и сравниваются с j на лист1 и по идее она находит искомое значение....ffff После этого выполняется Then...но напротив i в лист2 ставить указанные значения с лист1 не хочет...
В [vba]
Код
If Sheets("Лист2").Cells(J, 2).Value = Sheets("Лист1").Cells(i, 5).Value Then Sheets("Лист1").Cells(i, 5).Interior.Color = RGB(204, 204, 255)
[/vba] действие выполнялось... а у меня не захотело... Я понимаю, что макрос мастера боится... но не настолько...
Допустим... [vba]
Код
Sub bnm() Dim i&, j&, a As String, b As String, c&, d&
a = Sheets("Лист1").Cells(1, 5).Value b = Sheets("Лист1").Cells(3, 5).Value c = Sheets("Лист1").Cells(2, 10).Value d = lr1
If Sheets("Лист2").Cells(i, 1).Value = Sheets("Лист1").Cells(j, 5).Value Then
Sheets("Лист2").Cells(i, 3).Value = a Sheets("Лист2").Cells(i, 4).Value = b Sheets("Лист2").Cells(i, 5).Value = c
End If End Sub
[/vba]
Вот строка:
[vba]
Код
If Sheets("Лист2").Cells(i, 1).Value = Sheets("Лист1").Cells(j, 5).Value Then
[/vba]
Перебираются ячейки в i листа2 и сравниваются с j на лист1 и по идее она находит искомое значение....ffff После этого выполняется Then...но напротив i в лист2 ставить указанные значения с лист1 не хочет...
В [vba]
Код
If Sheets("Лист2").Cells(J, 2).Value = Sheets("Лист1").Cells(i, 5).Value Then Sheets("Лист1").Cells(i, 5).Interior.Color = RGB(204, 204, 255)
[/vba] действие выполнялось... а у меня не захотело... Я понимаю, что макрос мастера боится... но не настолько...ant6729
Сообщение отредактировал ant6729 - Суббота, 13.05.2017, 12:39