1

Предварительно сказал, что у меня нет опыта работы с VBA, но мне нужно, чтобы эти данные сортировались достаточно быстро. У меня есть Sage 300 Invoice Import, который мне нужно сделать. Я могу отсортировать эти данные по формулам после того, как это будет сделано во второй раз. Корень проблемы в том, что эти данные должны быть фактически помещены в две строки на одну строку, но Excel пропускает строки.

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

ActiveCell.EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown

Любые советы или подсказки? Я был бы рад, если бы он просто скопировал эту строку в ту, что находится под ней, пока не достигнет пустой строки.

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

2 ответа2

1

Выберите ячейку, из которой вы хотите начать копирование, и запустите этот макрос

Dim myCell
Set myCell = ActiveCell

While ActiveCell.Value <> ""
    Rows(ActiveCell.Row).Select
    Selection.Copy
    Selection.Insert Shift:=xlDown
    myCell.Offset(1, 0).Select
    Set myCell = ActiveCell
Wend
1
Sub copyRowToBelow()
    Dim rng As Range
    Set rng = Range("A1") ' <~~  Change this

    Do While (rng.Value <> "")
        ' Insert a row below the current one
        rng.Offset(1).Insert

        ' Copy the current row and paste it into the row we just inserted
        rng.EntireRow.Copy rng.Offset(1)

        ' Set the range declaration for 2 rows below the current one
        Set rng = rng.Offset(2)
    Loop
End Sub

Помеченная строка ("Изменить это") может быть объявлена в коде, или вы можете поменять ее на Set rng = ActiveCell если вы хотите, чтобы она запускалась вне ячейки, над которой работает пользователь во время запуска макроса.

Комментарии не нужны для кода, они предназначены только для того, чтобы помочь вам узнать больше о VBA.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .