WedX - журнал о программировании и компьютерных науках

Вырезать и вставить цикл с помощью VBA требуется

Надеюсь, вы поможете мне создать макрос VBA. У меня есть электронная таблица с некоторыми ошибками форматирования, которые я пытаюсь исправить. Я хочу найти пустой диапазон ячеек (в приведенном примере E6:H6). Если диапазон пуст, я хочу вырезать часть данных из строки непосредственно под ним (B7:E7) и вставить их в E6.

Пример электронной таблицы

введите здесь описание изображения

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

Sub Range_Cut()

Range("B7:E7").Cut Range("E6:H6")

End Sub

Любая помощь будет принята с благодарностью!

12.09.2018

  • Вы имеете в виду... вставьте его в E6:H6, верно? 13.09.2018
  • Да, извините за сумбур! 13.09.2018

Ответы:


1

Это зависит от вашего варианта использования, но должно работать. Можно было бы приложить больше усилий, чтобы сделать диапазоны полностью квалифицированными и динамичными.

Sub testLoop()

    Dim rng As Range
    Dim c As Range

    Set rng = Intersect(ActiveSheet.UsedRange, Range("E:E"))

    For Each c In rng

        If c.Value = "" And c.Offset(0, -1) <> "" Then
            c.Offset(1, -3).Resize(1, 4).Cut c
        End If

    Next c

    rng.SpecialCells(xlCellTypeBlanks).EntireRow.Delete

End Sub

Он проходит через столбец E в поисках пустых ячеек, где есть значение в D. Когда он находит их, он вырезает диапазон смещения из строки ниже и вставляет его в E. Затем в конце он удаляет пустые строки.

12.09.2018
  • Это работало безупречно; спасибо! Я не догадался искать значение в столбце D. Спасибо Спасибо спасибо! 13.09.2018

  • 2

    Непроверенный:

    Dim C As Range
    For each c in activesheet.range("a2:a17").cells
        if len(c.value) = 0 then c.offset(0, 1).resize(1, 4).cut _
               c.offset(-1, 4)
    next c
    
    12.09.2018
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]