VBA Excel Передает диапазон ячеек из столбца A в следующие столбцы с другим размером диапазона

#excel #vba

Вопрос:

У меня есть список слов в столбце А, так что каждое слово находится в одной ячейке. Мне нужно подсчитать энтропию указанного диапазона, поэтому мне нужно в столбце B диапазон A1:A10, в столбце C диапазон A1:A20, в столбце D диапазон A1:A30 … Количество столбцов и ячеек в столбце A всегда разное, потому что каждый раз требуется другой текст. Для этого мне понадобится помощь с кодом VBA. Спасибо.

Комментарии:

1. Что вы пробовали самостоятельно? Что вы намерены делать с соответствующими диапазонами? Я могу показать вам, но как ими пользоваться, это ваша работа-объяснить…

Ответ №1:

Считать:

 Sub FillUp()
    Dim items As Long, times As Long
    
    items = Cells(Rows.Count, "A").End(xlUp).Row
    times = items / 10
    
    For i = 1 To times
        j = i * 10
        Range(Cells(1, 1), Cells(j, 1)).Copy Range(Cells(1, i   1), Cells(j, i   1))
    Next i
End Sub
 

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

Это предполагает, что количество элементов в столбце A четно кратно 10

Комментарии:

1. Большое спасибо!

Ответ №2:

Добавив ответ ученика Гэри и небольшое изменение в коде, это будет работать также для количества элементов, не кратного 10.

«test2» — это кодовое название листа, который я использовал.

 Sub FillUp()

    Dim items As Long, times As Long

    items = test2.Range("A1").CurrentRegion.Rows.Count
    times = items / 10

    Dim i As Long

    For i = 1 To times

        test2.Range("A1").Resize(10 * i, 1).Copy test2.Range("A1").Offset(0, i)
    
    Next i

    If items Mod 10 <> 0 And items > 10 Then
    
        test2.Range("A1").Resize(items, 1).Copy test2.Range("A1").Offset(0, i)
    
    End If

End Sub
 

Комментарии:

1. Большое спасибо!