Удалить 2 столбца на основе значения ячейки - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть функция доступа, созданная для экспорта запроса в Excel.Есть места для 15 результатов.Хотя не все они используются, поэтому я хотел бы удалить пустые столбцы.

Я пытался найти в Lrow + 1 значение «0,000», а затем удалял весь столбец, но это не так.т работает.0,000 - это формула, но я использую метод .Value, поэтому проблем не должно быть, верно?

Вот код, который я пытался написать (но с треском провалился):

For Each Cel In wks.Range("C" & Lrow + 1, "V" & Lrow + 1)
If Cel.Value = "0.000" Then
Cel.EntireColumn.Delete
Cel.Offset(0, 1).EntireColumn.Delete
End If
Next Cel

Как на картинке, показаны 2 результата.Вот что я хотел бы сделать: поиск lrow + 1 (строка с 0,000), удаление этих столбцов вместе со столбцом рядом с ним.

Любая помощь будет принята с благодарностью.enter image description here

1 Ответ

0 голосов
/ 01 февраля 2019

Несколько вопросов здесь:

  1. Ссылка на диапазон неверна, поскольку Биг Бен указал
  2. Сравнение (вероятно) неверно.Я предполагаю, что значения вызовов - это числа, а не строки, которые выглядят как числа.Поэтому сравнение 0 с "0.000" не удастся.Используйте = 0 или если вы беспокоитесь о небольших не совсем 0 числах, используйте Absolute value <= 0.0005
  3. Логика удаления некорректна, она не удалит столбцы, которые вы считаете

.

Set rng = wks.Range("C" & Lrow + 1 & ":V" & Lrow + 1)
For i = rng.Columns.Count To 1 Step -1
    If rng.Cells(1, i).HasFormula Then
        If Abs(rng.Cells(1, i)) <= 0.0005 Then
            Rng.Cells(1, i).Resize(1, 2).EntireColumn.Delete
        End If
    End If
Next

Не забудьте использовать Option Explicit и объявить все переменные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...