Увеличение строки и удаление строки с помощью vba IN EXCEL - PullRequest
1 голос
/ 29 июля 2011
                Range("H25")

Вышеупомянутое утверждение выбирает 25-ую строку столбца H. Теперь, что я хочу знать, так это то, как я могу увеличить строку, поместив H-константу?да, я видел их в Google $ h24, где столбец остается постоянным, а строка продолжает увеличиваться.

Но мне нужно увеличить его с H25 до конца, я не знаю, где заканчивается столбец H.Как я могу это сделать? Мы можем объявить переменную прямо с помощью VBA и увеличить ее?

   I was thinkin to put it like these Range("Hvariablename")?

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

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Полагаю, вы можете предоставить некоторые дополнительные сведения о том, как должен выглядеть этот диапазон.Когда вы имеете в виду «нужно проверить строки от H25 до конца» и что здесь КОНЕЦ?

Если вы вручную копируете формулу вниз, она автоматически перейдет к последней строке со значениями в столбце G. Это ваш случай?Я не предполагаю, что строки H ниже строки 25 уже имеют некоторые значения.Это так?

Если вы используете в качестве END последнюю строку со значениями в столбце G, вы можете использовать Selection.AutoFill.

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

Чтобы определить динамический диапазон: добавьте новый диапазон, основанный на этой формуле (вам может понадобиться адаптировать его в соответствии с вашими потребностями, очевидно,) =OFFSET(Sheet1!$H$25,0,0,COUNTA(Sheet1!$H:$H),1)

А затем, в VBA, пройдитесь по нему.

Sub TEST()

    Dim oCell As Excel.Range
    Dim oRange As Excel.Range

    Set oRange = [TestRange]

    For Each oCell In oRange

        Debug.Print oCell.VALUE

    Next oCell

End Sub

Вовремя: чтобы удалить всю строку в Excel, вы будете использовать

Sheets(1).Rows(25).EntireRow.Delete
1 голос
/ 29 июля 2011

A Do While () Цикл звучит так, как вам может понадобиться.

Do While(cells(row,col)<>"")
      'Some code to be executed on cell(row,col)
Loop

Или вы можете сделать то же самое с циклом for

и найдите последнюю ячейку, используя lastRow=Cells("H24").End(xlDown).Row. (Это то же самое, что нажатие клавиш Ctrl + Down. Поэтому, если между ячейкой H25 и концом есть пустые ячейки, вам нужно будет это учесть).

В любом случае, я бы определенно использовал стиль ссылки на ячейку R1C1 для перемещения по ячейкам вместо стиля А1. Перемещаться по буквенным столбцам гораздо сложнее, чем пронумерованные столбцы. Также следует помнить, что «последняя строка» в Excel 2007 - это очень большое число, и цикл до конца может занять намного больше времени, чем цикл до последней важной ячейки.

Надеюсь, это на правильном пути.

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