Страницы: 1
RSS
Копирование значения содержимого ячейки по клику по ней
 
Добрый день. Есть код, который по нажатию на ячейку на листе Excel копирует ее содержимое и вставляет в другую ячейку(H6):
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myRng As Range
Set myRng = Range("A8:F124")

If Not Application.Intersect(myRng, Range(Target.Address)) Is Nothing Then
Range("H6") = Range(Target.Address).Value
End If
End Sub
Подскажите пожалуйста, можно ли как-нибудь поставить ограничение, которое бы блокировало копирование значений в зависимости от того, что у меня написано.
Т.е., например у меня есть список: яблоки, грушки, помидоры, вишня. Мне нужно поставить ограничение на слово(комбинацию слов) помидоры.
 
noobie1, т.е. в ячейке только то слово? или может содержаться в тексте? или если помидор то не копировать а если любое другое то копировать?!

как понял
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myRng As Range
Set myRng = Range("A8:F124")
 
If Not Application.Intersect(myRng, Range(Target.Address)) Is Nothing Then
If Range(Target.Address).Value <> "помидоры" Then
Range("H6") = Range(Target.Address).Value
End If
End If
End Sub
Изменено: Mershik - 26.02.2020 19:54:20
Не бойтесь совершенства. Вам его не достичь.
 
В ячейке только слово.
 
Mershik, да, суть Вы поняли. Получается таким образом я могу создать несколько ограничений? Например
Код
If Not Application.Intersect(myRng, Range(Target.Address)) Is Nothing Then
If Range(Target.Address).Value <> "помидоры" <> "огурцы <> "и другие" Then
Изменено: noobie1 - 26.02.2020 19:57:41
 
Mershik, попробовала вставить в свой проект, и ничего не сработало. По клику он все также копирует и вставляет значение ячейки.
 
noobie1, потому что нужно
Код
If Range(Target.Address).Value <> "помидоры" or Range(Target.Address).Value <> "огурцы"  then
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, я попробовала пока ограничить только одно значение. Скажите пожалуйста, может ли не работать по причине того, что ввожу несколько слов, но с Вашим исходным кодом
 
noobie1, несколько слов в одной ячейке? если да я же об этом спрашивал
Цитата
Mershik написал:
или может содержаться в тексте?
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, извините, я не так Вас поняла. Я думала Вы про то, что слово выбранное, на нашем примере помидор, может содержаться в предложении.
Получается если не надо ограничить словосочетание из нескольких слов, код значительно изменится?
 
noobie1, еще раз у вас там текст и слово в тексте или же конкретное одно слово и все!
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myRng As Range
Set myRng = Range("A8:F124")
 
If Not Application.Intersect(myRng, Range(Target.Address)) Is Nothing Then
If InStr(1, Range(Target.Address), "помидоры") = 0 Then
Range("H6") = Range(Target.Address).Value
End If
End If
End Sub
Изменено: Mershik - 26.02.2020 20:14:52
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, спасибо большое Вам, все заработало, стоило пере открыть книгу!
 
Mershik, очень Вам благодарна, но можете пожалуйста еще подсказать как проделать подобное на несколько значений?
 
noobie1, если быстро
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim myRng As Range
Set myRng = Range("A8:F124")
  
If Not Application.Intersect(myRng, Range(Target.Address)) Is Nothing Then
If InStr(1, Range(Target.Address), "помидоры") = 0 And InStr(1, Range(Target.Address), "огурцы") = 0 Then
Range("H6") = Range(Target.Address).Value
End If
End If
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, а можете пожалуйста сказать, можно ли в разрезе данного кода вставить ограничение на список? Например, значения, на которые не реагирует клик прописаны в диапазоне A1:A111?
 
noobie1, думаю можно только у вас отслеживается изменения ячеек от А8...ну короче что то не так будет)
Изменено: Mershik - 27.02.2020 14:19:50
Не бойтесь совершенства. Вам его не достичь.
Страницы: 1
Наверх