Sub ttt() For Each cell In Range("J2:J11") If cell.Value = "7777777"Or cell.Value = "(1111111"Or cell.Value = "2223333"Or cell.Value = "4444444"Or cell.Value = "5556666"Then
cell.Offset(, -4).ClearContents
cell.Offset(, -2).ClearContents EndIf Next EndSub
Держи студент))) учись хорошо!
Sub ttt() For Each cell In Range("J2:J11") If cell.Value = "7777777"Or cell.Value = "(1111111"Or cell.Value = "2223333"Or cell.Value = "4444444"Or cell.Value = "5556666"Then
cell.Offset(, -4).ClearContents
cell.Offset(, -2).ClearContents EndIf Next EndSub
Файл приложил, код подправил. В столбец X прописываете все значения который ищите.
Sub ttt() For Each cell In Range("J2:J11") If Range("X:X").Find(cell.Value) IsNothingThen Else
cell.Offset(, -4).ClearContents
cell.Offset(, -2).ClearContents EndIf Next EndSub
Файл приложил, код подправил. В столбец X прописываете все значения который ищите.
Sub ttt() For Each cell In Range("J2:J11") If Range("X:X").Find(cell.Value) IsNothingThen Else
cell.Offset(, -4).ClearContents
cell.Offset(, -2).ClearContents EndIf Next EndSub
DJ_Marker_MC ты чуть меня не понял за это спасибо канечно но мне на листе не чего нельзя добавлять список нужно задавать в макросе но он большой около 50 значений
DJ_Marker_MC ты чуть меня не понял за это спасибо канечно но мне на листе не чего нельзя добавлять список нужно задавать в макросе но он большой около 50 значенийstudent-ua
student-ua, А как насчет вынести на другой лист и сделать его VeryHidden? и тянуть оттуда данные? Просто список в 50 значений мне кажется немного глупо впихивать в макрос.
student-ua, А как насчет вынести на другой лист и сделать его VeryHidden? и тянуть оттуда данные? Просто список в 50 значений мне кажется немного глупо впихивать в макрос.DJ_Marker_MC
DJ_Marker_MC давай брать данные из другого файла (c:\KOD.xls) список из которого нужно брать значения А1 "KOD" A2 777777 A3 555555 .... и так далее так получется уневерсальная прога с пополнением списка. только когда запускаем макрос файл KOD.xls чтобы не открвывался а из него только брало значения и все.
DJ_Marker_MC давай брать данные из другого файла (c:\KOD.xls) список из которого нужно брать значения А1 "KOD" A2 777777 A3 555555 .... и так далее так получется уневерсальная прога с пополнением списка. только когда запускаем макрос файл KOD.xls чтобы не открвывался а из него только брало значения и все.student-ua
student-ua, то, что Вы предлагаете, как раз и есть очень не универсальное решение, т.к. при подтягивании данных из внешних файлов приходится в коде прописывать их полный путь, а при переносе с машину на машину путь может меняться и код работать перестанет если его соответствующим образом не исправить. А это очень не удобно. DJ_Marker_MC Вам дело говорит:
Тогда не будет никаких проблем с размещением данных. А докопаться до "шибко заныканного" листа сможет только тот, кто о его существовании знает, да и к тому же умеет пользоваться VBE, т.к. только оттуда можно лист сделать видимым. Та что это как раз и есть
student-ua, то, что Вы предлагаете, как раз и есть очень не универсальное решение, т.к. при подтягивании данных из внешних файлов приходится в коде прописывать их полный путь, а при переносе с машину на машину путь может меняться и код работать перестанет если его соответствующим образом не исправить. А это очень не удобно. DJ_Marker_MC Вам дело говорит:
Тогда не будет никаких проблем с размещением данных. А докопаться до "шибко заныканного" листа сможет только тот, кто о его существовании знает, да и к тому же умеет пользоваться VBE, т.к. только оттуда можно лист сделать видимым. Та что это как раз и есть
Alex_ST, Я так думаю что student-ua, реальный студент и предполагаю что задание от препода. Я так понимаю тут нужно реально через создание библиотеки/массива (в чем я не силен, не даются они мне никак). Так что или лист veryhidden или если кто то поможет с массивом
Alex_ST, Я так думаю что student-ua, реальный студент и предполагаю что задание от препода. Я так понимаю тут нужно реально через создание библиотеки/массива (в чем я не силен, не даются они мне никак). Так что или лист veryhidden или если кто то поможет с массивомDJ_Marker_MC
DJ_Marker_MC, пишем на лист, собираем в строку через запятую (при нужде - с кавычками), копируем, пихаем строку в Array в коде. Кому не лень, может проделать. А далее - что с листа массив тянуть, что из кода.
DJ_Marker_MC, пишем на лист, собираем в строку через запятую (при нужде - с кавычками), копируем, пихаем строку в Array в коде. Кому не лень, может проделать. А далее - что с листа массив тянуть, что из кода.RAN
Универсальный вариант такой - этот список замен держать в файле с макросом, и лист можно не скрывать. А макросом обрабатывать активный лист или выделенный диапазон любого другого файла.
Универсальный вариант такой - этот список замен держать в файле с макросом, и лист можно не скрывать. А макросом обрабатывать активный лист или выделенный диапазон любого другого файла.Hugo
Андрей, я в таких случаях стринги-элементы массива сначала набиваю в ячейках листа, а потом их формулой сцепляю, предварительно обрамив в служебном столбце кавычками и запятыми. Очень просто получается. Вот только я не уверен, что student-ua умеет сцеплять более 30 значений
Андрей, я в таких случаях стринги-элементы массива сначала набиваю в ячейках листа, а потом их формулой сцепляю, предварительно обрамив в служебном столбце кавычками и запятыми. Очень просто получается. Вот только я не уверен, что student-ua умеет сцеплять более 30 значений Alex_ST
Ну да, практически то же самое. Извини, не внимательно прочитал. Но всё равно, интересно, может топик-стартер конкатенацию через амперсанд делать? (Только не поймите меня не правильно, никакой пошлости )
Ну да, практически то же самое. Извини, не внимательно прочитал. Но всё равно, интересно, может топик-стартер конкатенацию через амперсанд делать? (Только не поймите меня не правильно, никакой пошлости )Alex_ST
Sub длянедлинных() Dim arr
arr = Split("qwe e4rt ry tu ti yi yi") EndSub
Sub копипаструлит() Dim s$, arr
s = "qwe"
s = s & " " & "e4rt"
s = s & " " & "ry"
s = s & " " & "tu"
s = s & " " & "ti"
s = s & " " & "yi"
s = s & " " & "yi"
arr = Split(s) EndSub
Ещё варианты:
Sub длянедлинных() Dim arr
arr = Split("qwe e4rt ry tu ti yi yi") EndSub
Sub копипаструлит() Dim s$, arr
s = "qwe"
s = s & " " & "e4rt"
s = s & " " & "ry"
s = s & " " & "tu"
s = s & " " & "ti"
s = s & " " & "yi"
s = s & " " & "yi"
arr = Split(s) EndSub
Sub ttt()
arr = Array("7777777", "1111111", "2223333", "4444444","5556666")
a = UBound(arr)
For Each cell In Range("J2:J11") For i = 0To a If cell.Value = arr(i) Then
cell.Offset(, -4).ClearContents
cell.Offset(, -2).ClearContents EndIf Next i Next EndSub
Я так понял студенту нужно так:
Sub ttt()
arr = Array("7777777", "1111111", "2223333", "4444444","5556666")
a = UBound(arr)
For Each cell In Range("J2:J11") For i = 0To a If cell.Value = arr(i) Then
cell.Offset(, -4).ClearContents
cell.Offset(, -2).ClearContents EndIf Next i Next EndSub
тогда наверняка на Option Base 1 не напорешься (никогда не могу запомнить, с чего считается массив, заданный как arr = Array("7777777", "1111111", "2223333", "4444444","5556666") и влияет ли эта декларация на него)
------------------------ К стати, сейчас проверил - не влияет. И так, и так с 0 считает
только лучше писАть
For i= lbound(arr) to ubound(arr)
тогда наверняка на Option Base 1 не напорешься (никогда не могу запомнить, с чего считается массив, заданный как arr = Array("7777777", "1111111", "2223333", "4444444","5556666") и влияет ли эта декларация на него)
------------------------ К стати, сейчас проверил - не влияет. И так, и так с 0 считаетAlex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Вторник, 06.05.2014, 14:00
а никто и не спорит, что через Split проще получается, а через амперсанд на листе - ещё удобнее особенно при больших массивах. (я так понимаю, что у всех время обеденного бутерброда с приправой из VBA настало? )
а никто и не спорит, что через Split проще получается, а через амперсанд на листе - ещё удобнее особенно при больших массивах. (я так понимаю, что у всех время обеденного бутерброда с приправой из VBA настало? )Alex_ST