Страницы: 1
RSS
Критика макроса, Укажите, пожайлуста, на основные проблему
 
Добрый вечер. Есть 4 диапазона данных (каждый по 4 столбца, количество строк постоянно меняется), их местоположение известно.
Я попробовал написать макрос, он дает результат. Но я чувствую, что можно было сделать это по-другому/легче/эффективнее.
Пожалуйста, укажите на эти моменты (можно без кода, просто словами описать где проблема и какие конструкции использовать). Я только начал учить VBA, хочется понять, где проблемы.
Спасибо

Код
Sub asd()

    Dim shtX As Worksheet             'рабочий лист
    Dim rngStart As Range             'начальная ячейка
    Dim rngFinish As Range            'ячейка для другиз диапазонов
    Dim rngX As Range
    

    Dim rngAll As Range               'весь рабочий 1-ый диапазон
    Dim rngOther As Range             'весь другой диапазон
    Dim Nrow As Long                  'число строк

    
    Set shtX = ActiveSheet
    Set rngStart = shtX.Range("A1")
    Set rngAll = rngStart.CurrentRegion
    Nrow = rngAll.Rows.Count

 
    Set rngFinish = shtX.Range("H1")
    Set rngOther = rngFinish.CurrentRegion

    Set rngX = rngStart.Offset(Nrow, 0)
    
    rngOther.Offset(1, 0).Select
    Selection.Cut
    rngX.Select
    ActiveSheet.Paste
    
    rngOther.Clear
    
    
    Set shtX = ActiveSheet
    Set rngStart = shtX.Range("A1")
    Set rngAll = rngStart.CurrentRegion
    Nrow = rngAll.Rows.Count

 
    Set rngFinish = shtX.Range("o1")
    Set rngOther = rngFinish.CurrentRegion

    Set rngX = rngStart.Offset(Nrow, 0)
    
    rngOther.Offset(1, 0).Select
    Selection.Cut
    rngX.Select
    ActiveSheet.Paste
    
    rngOther.Clear
    
        
    Set shtX = ActiveSheet
    Set rngStart = shtX.Range("A1")
    Set rngAll = rngStart.CurrentRegion
    Nrow = rngAll.Rows.Count

 
    Set rngFinish = shtX.Range("v1")
    Set rngOther = rngFinish.CurrentRegion


    Set rngX = rngStart.Offset(Nrow, 0)
    
    rngOther.Offset(1, 0).Select
    Selection.Cut
    rngX.Select
    ActiveSheet.Paste
    
    rngOther.Clear
End Sub
 
Критика названия темы...
Название темы должно отражать суть задачи. Предложите новое. Модераторы заменят.
 
Цитата
vikttur написал:
Критика названия темы...
Название темы должно отражать суть задачи. Предложите новое. Модераторы заменят.
Оптимизация кода макроса


Спасибо
 
Пожалуйста.
Представьте, что не Вы создали тему. По такому названию Вы можете сказать, какой макрос нужно оптимизировать? Или Ваша тема  - заготовка для будущей свалки по всем десяткам-сотням оптимизаций кодов?

Ознакомьтесь с правилами форума.
Страницы: 1
Читают тему
Наверх