Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2012, 16:26   #1
dmonco
 
Регистрация: 23.03.2012
Сообщений: 6
По умолчанию Макрос удаления данных в ячейках

Добрый день.
Есть таблица в csv
---A----- -----B----- ----C----- -----D---- -----E----
1 Parent-- -значение- --значение- --значение Category1
2 Child--- --значение- --значение- --значение Category1
3 Child--- --значение- --значение- --значение Category1
4 Parent-- --значение- --значение- --значение Category2
5 Child--- --значение- --значение- --значение Category2
... и т.д.

Нужно, чтобы макрос удалял данные в колонке E напротив Child.
То есть остается Parent и должно получится так:
---A----- -----B----- ----C----- -----D---- -----E----
1 Parent-- -значение- --значение- --значение Category1
2 Child--- --значение- --значение- --значение здесь должно быть пусто
3 Child--- --значение- --значение- --значение здесь должно быть пусто
4 Parent-- --значение- --значение- --значение Category2
5 Child--- --значение- --значение- --значение здесь должно быть пусто
... и т.д.

Как это можно реализовать. Что-то подобных примеров не нахожу.
Более что-то похожее нашел, если ячейка выделена цветом, но это не то.
Код:
If Cells(ActiveCell.Row, 1).Interior.ColorIndex = xlNone Then ActiveCell.EntireRow.Delete
End If

Последний раз редактировалось dmonco; 30.05.2012 в 16:38.
dmonco вне форума Ответить с цитированием
Старый 30.05.2012, 16:55   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

csv - это текст.
Перебираем построчно - в строках с Child на второй позиции оставляем только первую и вторую позицию.
Т.е. перекладываем в другой файл эти строки обрезанными, остальные полностью.

Пример кода vbs скрипта для "самоделкина":
Код:
   ' FSO Constants
   t = timer
   Const ForReading   = 1
   Const ForWriting = 2
   Const ForAppending   = 8
   Const TristateUseDefault= -2
   
   ' Variables
   Dim objFSO, objTS, objOTS, objfile, tempStr

   ' Instantiate the object
   Set objFSO = CreateObject("Scripting.FileSystemObject")

   ' open the text file read only
   Set objTS = objFSO.OpenTextFile("C:\temp\obbnd\Tor_ip_list_ALL.csv", ForReading, False, TristateUseDefault)
   ' We now open the file to write it out
   If objFSO.FileExists("C:\temp\obbnd\Tor_ip_list_ALL.txt") Then
      Set objOTS = objFSO.OpenTextFile("C:\temp\obbnd\Tor_ip_list_ALL.txt", ForAppending) 'открываем итоговый файл для добавления записей
   Else
      Set objfile = objFSO.CreateTextFile("C:\temp\obbnd\Tor_ip_list_ALL.txt")
      Set objfile = Nothing
      Set objOTS = objFSO.OpenTextFile("C:\temp\obbnd\Tor_ip_list_ALL.txt", ForAppending)
   End if

   Do While objTS.AtEndOfStream <> True
   tempStr = objTS.ReadLine()
      objOTS.Write Replace(tempStr,".","-") & "/" & tempStr & vbCrLf
   Loop
   
   ' Close all files after we read it in.
   objTS.Close
   Set objTS = Nothing
   objOTS.Close
   Set objOTS = Nothing
   Set objFSO = Nothing
t=timer-t
msgbox "OK! Run in " & t
P.S.Пока писал - уже исходные данные поменялись. Ну ничего - это сути и подход не меняет.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 30.05.2012 в 18:08.
Hugo121 вне форума Ответить с цитированием
Старый 30.05.2012, 17:38   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

открываете файл в экселе и любым доступным Вам способом запускаете этот макрос:
Код:
Sub BlankEcolumn()
  Dim r As Long
  For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(r, 1) = "Child" Then Cells(r, 5).ClearContents
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.05.2012, 18:11   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Игорь, думаю следующий вопрос будет такой - а как мне теперь его сохранить в правильном виде?
Скриптом vbs всё можно сделать "тихо и без пыли" в виде Экселя.
Но конечно нужно чуть "допрограммировать" под конкретный файл.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 31.05.2012, 01:16   #5
dmonco
 
Регистрация: 23.03.2012
Сообщений: 6
По умолчанию

IgorGO, спасибо большое. Всё работает четко.

Hugo121, все когда-то начинают. Но мой уровень не вообще нулевой))
Только Ваш код с пересохранением в файл так и не понял.
dmonco вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для удаления строки julius Microsoft Office Excel 28 03.10.2014 00:19
макрос для удаления строк??? mixa2997510 Microsoft Office Excel 3 21.05.2012 13:38
Макрос выборочного удаления ссылок в excel AEL7 Microsoft Office Excel 10 28.10.2011 17:40
Макрос добавления\удаления людей в табель madex Microsoft Office Excel 5 31.03.2011 18:20
Макрос для удаления повторяющихся строк Jelena_bsb Microsoft Office Excel 3 05.08.2010 13:34