#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. Большое спасибо!