5 / 5 / 0 Регистрация: 02.01.2017 Сообщений: 164 |
|
1 |
|
Нужен макрос для удаления значений в ячейках по условию02.03.2017, 22:57. Показов 26112. Ответов 9
Ребята каким можно макросом удалять значения определённых ячеек .Задача макроса ,в ячейках в каждой из строк начиная с 28 строки столбца I ,промониторить выполняется ли условия чтобы если в ячейке значение меньше 2,00 то в этой строке будут стерты значения в ячейках C28 D28 E28 M28 N28 O28 P28 и так по всем ниже расположенным строкам без ограничения.Если условие в строке выполняется то значения в ячейках столбцов C,D,E,M,N,O,P это же строки будут удалены.Значения во всех этих ячейках введены используя выпадающий список.
0 |
smeckoi77 61 / 60 / 16 Регистрация: 13.02.2017 Сообщений: 172 |
||||
03.03.2017, 00:47 |
2 |
|||
Решение
1 |
5 / 5 / 0 Регистрация: 02.01.2017 Сообщений: 164 |
|
03.03.2017, 03:03 [ТС] |
3 |
А можно пожалуйста ещё одно условие добавить в этот макрос ,к тому что в «A» ячейка < 2 .и ещё если в столбце «H» этой же строки ячейка имеет значение текст «ДА» то ‘макрос срабатывает на удаление значений в ячейках столбцов C,D,E,M,N,O,P.
0 |
k61 85 / 82 / 31 Регистрация: 13.10.2014 Сообщений: 167 |
||||
03.03.2017, 05:46 |
4 |
|||
Решение
1 |
Aleks 1978 5 / 5 / 0 Регистрация: 02.01.2017 Сообщений: 164 |
||||
03.03.2017, 06:20 [ТС] |
5 |
|||
А как можно вот этот вариант кода с одним условием,закрепив его выполнение за кнопкой на Листе 9 ,чтобы он смог сделать свои вычисления с данными находящимися на Листе3 ?
0 |
smeckoi77 61 / 60 / 16 Регистрация: 13.02.2017 Сообщений: 172 |
||||||||
03.03.2017, 08:22 |
6 |
|||||||
РешениеПеред словом Range везде дописать Sheets(«Лист3»).
Добавлено через 3 минуты
1 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,930 |
||||
03.03.2017, 09:35 |
7 |
|||
Решение
1 |
Aleks 1978 5 / 5 / 0 Регистрация: 02.01.2017 Сообщений: 164 |
||||||||
05.03.2017, 20:36 [ТС] |
8 |
|||||||
Добавил в макрос второе условие,которые будут в столбце A отбирать на удаление только значения меньше 1,50 и больше 1,70.Вопрос в чём ошибка строки в коде? а то макрос не работает.
0 |
smeckoi77 61 / 60 / 16 Регистрация: 13.02.2017 Сообщений: 172 |
||||
05.03.2017, 20:45 |
9 |
|||
Число не может быть меньше 1,5 и больше 1,7 одновременно. Добавлено через 4 минуты Добавлено через 40 секунд
1 |
5 / 5 / 0 Регистрация: 02.01.2017 Сообщений: 164 |
|
05.03.2017, 21:28 [ТС] |
10 |
Благодарю за помощь!Работает теперь
0 |
I am trying to create an Excel VBA that would delete only a specific part of the cell in only one column.
In Column A, I have a directory values:
For example:
Directoryof K:dataAdmin
What I would like to do is remove the «Directoryof
» from all the cells in column A and leave only the remaining text that follows it.
asked Jul 28, 2015 at 16:44
To create a macro to perform the above follow the below steps:
- Click the «Developer» tab on the top menu.
- You will find an option «Record Macro».
-
Click the Record Macro ->
a. A dialog box appears, give your macro a name
b. Shortcut key (if you want) can give by pressing (shift and any key such as
letters)
c. Store macro in : This workbook (this allows your macro to run on this sheet). -
Click on «Use Relative References».
-
Once you are done, just perform the delete operation ( by removing the portion you do not want) on one of the column so that the macro may record the process which you are performing.
-
Once done, below at the lowest pane you will find Stop Macro option (a small blue square box). Click it to stop the recording of the macro.
-
Now you are ready with a macro to replicate the same without you performing the operation.
-
Just goto any other column where you want to perform the operation and click on «Macro» option on the developer tab and then click on your created marco, and you will see the magic happen.
answered Jul 28, 2015 at 17:24
You could probably use regex to accomplish what you are going for. Regular Expressions are often used for finding patterns. If all of your follows the same format, you could break your strings apart into two capture groups with something like:
(.+)([A-Z]:\.+)
https://regex101.com/r/uD4uJ0/2 <— this will show you your capture groups
Edit: I updated this link, sorry, originally had the wrong one.
This here How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops will show you how to split up capture groups if you are interested.
answered Jul 28, 2015 at 17:02
Scott TScott T
2332 gold badges5 silver badges14 bronze badges
You could use something like text to columns, fixed width, and split the columns after Directoryof and then copy/paste the values back into column A.
I’m not sure if there’s a method to do this without a helper column without VBA. If you can afford to use a second column, you can also use =LEFT(Cell, # of characters)
assuming that the part you want to strip off is always «Directoryof» and then copy/paste values back into column A.
shA.t
16.4k5 gold badges53 silver badges111 bronze badges
answered Jul 28, 2015 at 16:58
KFichterKFichter
7534 silver badges15 bronze badges
Многим пользователям, в том числе и мне, приходится ежедневно, еженедельно, ежемесячно либо ежегодно использовать одни и те же таблицы, сделанные в Excel. Для повторного и последующего использования этих таблиц, как правило приходится удалять значения некоторых ячеек для того, чтобы освободить место для внесения в них новых данных. Удалить устаревшие значения в таблице тем дольше и сложнее, чем старее версия Excel, чем больше таблица и чем больше промежуточных расчетов и результатов в этой таблице. Как сделать это быстро?
Чтобы было понятно о чем пойдет речь, вспомним, что ячейка — это часть табличного пространства, образованная пересечением строки и столбца. Ячейка может содержать какие-то значения, например числа, текст, формулы и так далее, а также может содержать информацию о шрифтах, их цветах и размерах, заливках, рамках, защите и так далее. Таким образом, удалять можно как сами ячейки со всем их содержимым (при этом место удаленной ячейки занимает новая, а всё табличное пространство смещается либо вверх, либо влево) так и часть информации, например только значения или только форматы. В этой публикации речь пойдет об удалении значений, когда сами ячейки остаются на своих местах и информация об их форматах остается неизменной.
Стандартные средства для удаления значений ячеек
Представим (либо посмотрим на видео ниже), что на рабочем листе Excel расположена таблица. В этой таблице шапка и некоторые столбцы, содержат различные текстовые значения, основное пространство таблицы содержит ячейки с числовыми значениями, которые в свою очередь участвуют в расчетах, определенных формулами. К примеру, необходимо удалить из этой таблицы только числа, не удаляя при этом формулы, или только текст, не удаляя при этом числа и всё остальное.
Для того чтобы очистить место в таблице для внесения новых значений можно выделять поочередно нужные диапазоны ячеек и нажимать кнопку «Delete» на клавиатуре, как говорится, медленно, но верно. Проделав такую операцию полтора десятка раз невольно появляется вопрос «а можно ли как-нибудь быстрее?». Конечно можно! Даже нужно. В Microsoft Excel 2007 и выше для этих целей подойдет такой инструмент как «Выделение группы ячеек». Для этого выбираем на ленте Excel вкладку «Главная», переходим в группу «Редактирование», нажимаем кнопку «Найти и выделить» и выбираем команду «Выделение группы ячеек». Появляется одноименное диалоговое окно, при помощи которого можно выделить определенные ячейки таблицы и после этого удалить их значения.
Выделение группы ячеек производится последовательно, нельзя например одновременно выделить и константы и формулы. Так уже гораздо быстрее, не правда ли? Но и это не предел. Все-таки удаление происходит в два этапа, сначала выделяем, затем удаляем. Если таблицы на разных листах и их много, то и с таким способом можно провозиться достаточно долго. В Excel 2003 выделение группы ячеек вообще не предусмотрено и в этой версии без дополнительных инструментов не обойтись.
Дополнительные инструменты для выборочного удаления значений
В некоторых случаях ускорить выборочное удаление значений ячеек поможет надстройка, которая легко устанавливается и запускается одним нажатием кнопки, выведенной прямо в главное меню. Надстройка позволяет удалять значения из ячеек с числами, с текстом, с формулами, с примечаниями, с заливкой, с рамками, как по раздельности, так и в любых сочетаниях. Кроме того предусмотрен выбор диапазона для удаления значений. Возможен используемый диапазон (с первой до последней заполненной ячейки), используемые диапазоны (используемый диапазон на каждом листе активной рабочей книги), выделенный пользователем диапазон, а также выделенный диапазон, но на каждом листе рабочей книги.
Использование надстройки позволяет:
1. выборочно удалять значения из ячеек с числами, с текстом, с формулами, с датами, ячеек содержащих примечания, цветную заливку, цветной шрифт, границы;
2. проводить выборочное удаление значений из ячеек используемых диапазонов, предварительно выделенных диапазонов, диапазонов, выбранных вручную, а также столбцов с заданными именами;
3. осуществлять очистку ячеек от значений на видимых, скрытых, непустых листах, листах с заданными именами, с заданными номерами, с заданным значением в определенном диапазоне, а также на всех листах рабочей книги Excel.
Видео по работе с надстройкой
макрос (надстройка) для выборочного удаления значений из ячеек
Видео по выборочному удалению значений ячеек
Другие материалы по теме:
sashgera Пользователь Сообщений: 83 |
#1 16.04.2014 00:28:25 Здравствуйте
Помогите, пожалуйста, изменить код макроса, что бы строки удалялись, начиная со строки ‘B2’ и до последней активной ячейки этого столбца (строки в таблице добавляются/удаляются). Прикрепленные файлы
|
||
Scripter Пользователь Сообщений: 255 |
#2 16.04.2014 02:06:57 просто изменить For i = .Rows.Count To 1 Step -1 на To2 но ваш код будет выдавать ошибку в случае конвертации пустой ячейки в Cnlg,
либо еще проще
Изменено: Scripter — 16.04.2014 02:29:27 |
||||
sashgera Пользователь Сообщений: 83 |
Scripter, Изменено: sashgera — 16.04.2014 02:30:56 |
Scripter Пользователь Сообщений: 255 |
#4 16.04.2014 02:30:32
Изменено: Scripter — 16.04.2014 08:56:06 |
||||
sashgera Пользователь Сообщений: 83 |
Scripter, большое спасибо, все отлично работает! |
sashgera Пользователь Сообщений: 83 |
#6 16.04.2014 03:13:19 Scripter, только что заметил, не удаляются пустые ячейки,
[USER=11992][/USER] |
||
Scripter Пользователь Сообщений: 255 |
#7 16.04.2014 03:38:25
добавил проверку на пустые ячейки
проверка на пустые может быть выполнена разными вариантами: Cells(i, 2).Value = «» |
||||
sashgera Пользователь Сообщений: 83 |
|
sashgera Пользователь Сообщений: 83 |
#9 17.04.2014 01:32:16 Scripter, я немного изменил макрос, все работает УДАЛЯЕМ строку если в ячейке столбца «B» есть число: от 0 до 399
не получается сделать аналогичный макрос
если можно, пожалуйста, помогите Прикрепленные файлы
Изменено: sashgera — 17.04.2014 01:39:50 |
||||
Scripter Пользователь Сообщений: 255 |
#10 17.04.2014 04:38:28 так
|
||
sashgera Пользователь Сообщений: 83 |
#11 17.04.2014 09:26:13 Scripter, спасибо! |
Макрос удаления значений из диапазона по вводу списка |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |