Удаление всей строки в excel, если отсутствуют данные в определенном столбце или столбцах?

Я только что скачал файл Micosoft CSV из Google Contacts, и я хотел бы изменить его, чтобы я мог организовать контакты в моем телефоне. Я возвращаюсь к своему" тупому "телефону как часть моего эксперимента, чтобы упростить мою жизнь, и" немой " телефон не имеет места для всех контактов в файле.

С учетом сказанного, я думаю, что Google, ЭМ, глупо перечислять почти всех, кого я когда-либо отправлял по электронной почте в жизни моей учетной записи Gmail, а другие - нет (я полагаю, они приходят из списков рассылки, в которых я нахожусь). В итоге получается, что у меня огромный список контактов, но большинство из них я даже не знаю, и у меня нет номера телефона. Я не отправляю электронные письма на свой телефон (и я, очевидно, не буду отправлять их на свой флип-телефон), поэтому они мне не нужны.

Итак, я импортировал файл CSV в excel. В принципе, я хочу удалить всю строку, если для этой строки нет данных в Столбцах, о которых я беспокоюсь

R,S,T,U,V,W,AL,AM,AN,AO,AP,BG,BH,BR,BS,BU,BV

так позвольте мне немного упростить задачу. Предположим, что имя, отчество и фамилия указаны в Столбцах A,B и C соответственно. Тогда номер мобильного телефона в колонке D домашний номер телефона в графе E, а email находится в столбце F. Для каждого контакта в списке, я хочу удалить строку если в ней нет данных в столбце D или E или оба, но мне все равно, есть ли у него данные в столбце F.

Я написал следующий макрос, но это просто, кажется, удаляет всю мою электронную таблицу, чего делать не следует. Я очень новичок в макросах Excel и VBA, это первый раз, когда я когда-либо делал что-либо с ними, поэтому я был бы признателен за помощь.

Sub deleteBlankRows()
On Error Resume Next
Columns("R:R").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("S:S").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("T:T").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("U:U").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("V:V").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("W:W").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AL:AL").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AM:AM").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AN:AN").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AO:AO").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("AP:AP").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BG:BG").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BH:BH").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BR:BR").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BS:BS").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BU:BU").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns("BV:BV").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
8
задан audiFanatic
17.02.2023 10:16 Количество просмотров материала 3605
Распечатать страницу

1 ответ

Я думаю, что ваша идея хорошая, просто VBA хочет работать не так. Я бы попробовал с такой петлей -

Sub deleterows()

Dim intcount As Integer
Dim introw As Integer

intcount = ActiveSheet.UsedRange.Rows.Count

For introw = intcount To 1 Step -1
    If Range("B" & introw) = "" Or Range("C" & introw) = "" Then
    Range("B" & introw).EntireRow.Delete
    End If

Next

End Sub

на if условие, просто определите все столбцы, которые вы хотите проверить как Range("X" & introw) = "" разделены Or.

1
отвечен Raystafarian 2023-02-18 18:04

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

csv
macros
microsoft-excel
microsoft-excel-2007
vba
Вверх