if cells ... range ... and
4 отговора
0 прегледа
if cells ... range ... and
За много години!
Бих искала да попитам относно един проблем а именно:
Това което искам да постигна го постигам с този код:
Private Sub Worksheet_Change(ByVal Target As Range)
r = ActiveCell.Row
c = ActiveCell.Column
If Cells(r, c) = "Д" And range("E20") = "ПР" Then
UserForm3.Show
End If
Next
End Sub
Но условието е изпълнено само за една клета, тоест userform3 се показва само когато условиято е вярно за една клетка, а бих искала и за другите клетки да стане, за това опитах така:
Private Sub Worksheet_Change(ByVal Target As Range)
For N = 5 To 35
r = ActiveCell.Row
c = ActiveCell.Column
If Cells(r, c) = "Д" And Cells(20, N) = "ПР" Then
UserForm3.Show
End If
Next
End Sub
- Но не се получава. Тоест userform3 се извиква, независимо от стойността във втората част на условието. Моля посъветвайте ме, как да го направя така, че userform3 да се показва само когато са изпълнени и двете условия.
Благодаря!
Бих искала да попитам относно един проблем а именно:
Това което искам да постигна го постигам с този код:
Private Sub Worksheet_Change(ByVal Target As Range)
r = ActiveCell.Row
c = ActiveCell.Column
If Cells(r, c) = "Д" And range("E20") = "ПР" Then
UserForm3.Show
End If
Next
End Sub
Но условието е изпълнено само за една клета, тоест userform3 се показва само когато условиято е вярно за една клетка, а бих искала и за другите клетки да стане, за това опитах така:
Private Sub Worksheet_Change(ByVal Target As Range)
For N = 5 To 35
r = ActiveCell.Row
c = ActiveCell.Column
If Cells(r, c) = "Д" And Cells(20, N) = "ПР" Then
UserForm3.Show
End If
Next
End Sub
- Но не се получава. Тоест userform3 се извиква, независимо от стойността във втората част на условието. Моля посъветвайте ме, как да го направя така, че userform3 да се показва само когато са изпълнени и двете условия.
Благодаря!
Re: if cells ... range ... and
Смени следните два реда:
r = ActiveCell.Row
c = ActiveCell.Column
с тези:
r = Target.Row
c = Target.Column
r = ActiveCell.Row
c = ActiveCell.Column
с тези:
r = Target.Row
c = Target.Column
Re: if cells ... range ... and
Благодаря ти BatiGogo!
Но пак не се получава.
В тази чат от кода нямам проблем -
r = Target.Row
c = Target.Column
If Cells(r, c) = "Д"
но ето тук имам проблем - And Cells(20, N) = "ПР"
Тоест, userform3 се показва ако в указания диапазон от клетки "Cells(20, N) = "ПР", ако в някоя от клетките стойността е ="ПР". А аз искам само в определена клетка да се проверява каква е стойността. За по нагледно ще прикача картинка.
Ето линк[image][линк][/image]
Двете клетки, който съм очертал с червена рамка - само за тях трябва да са спазени условията, за да се покаже userform3. След това аналогично и за следващите две клетки.
Благодаря!
Но пак не се получава.
В тази чат от кода нямам проблем -
r = Target.Row
c = Target.Column
If Cells(r, c) = "Д"
но ето тук имам проблем - And Cells(20, N) = "ПР"
Тоест, userform3 се показва ако в указания диапазон от клетки "Cells(20, N) = "ПР", ако в някоя от клетките стойността е ="ПР". А аз искам само в определена клетка да се проверява каква е стойността. За по нагледно ще прикача картинка.
Ето линк[image][линк][/image]
Двете клетки, който съм очертал с червена рамка - само за тях трябва да са спазени условията, за да се покаже userform3. След това аналогично и за следващите две клетки.
Благодаря!
Редактирано от zvezdi4kata_ff на
Re: if cells ... range ... and
Дали правилно съм прочел мислите ти?
Искаш да провериш дали в някаква клетка има написано "Д" и на 20-ти ред в същата колона да има написано "ПР"?
Ако да - то проверката трябва да бъде:
If (Cells(r, c).value = "Д") And (Cells(20, c).value = "ПР") Then
Имам навик да слагам повечко скоби, както и да ползвам .value /въпреки,че ПОНЯКОГА е излишно/
Искаш да провериш дали в някаква клетка има написано "Д" и на 20-ти ред в същата колона да има написано "ПР"?
Ако да - то проверката трябва да бъде:
If (Cells(r, c).value = "Д") And (Cells(20, c).value = "ПР") Then
Имам навик да слагам повечко скоби, както и да ползвам .value /въпреки,че ПОНЯКОГА е излишно/