#vba #excel
#vba #excel
Вопрос:
В рабочих листах у меня есть «Даты» в Cells(1,1)
, Cells(1,10)
, Cells(1,19)
, Cells(1,28)
…..
У меня есть переменная с именем nr_rows
witch, в моем случае 860, и мне нужно указать под каждым «Dates» результаты от Row 1
in Row 2
до Row 860
.
Результаты должны быть похожи:
| A | J | S |.....
-----------------------------------------------------------
1 | 21.02.16 16:20 | 21.02.16 16:21 | 21.02.16 16:22 |.....
2 | 21.02.16 16:20 | 21.02.16 16:21 | 21.02.16 16:22 |.....
3 | 21.02.16 16:20 | 21.02.16 16:21 | 21.02.16 16:22 |.....
.....................................................................
860 | 21.02.16 16:20 | 21.02.16 16:21 | 21.02.16 16:22 |.....
Это то, что я сделал, но у меня ошибка 1004
nr_rows is 860
col = 1
For col = 1 To 256
For n = 1 to nr_rows
ActiveSheet.Cells(1, col).Select
Selection.AutoFill Destination:=Range(Cells(1, col), Cells(n,col))
col = col 9
Next n
Next col
Ответ №1:
отредактировано после разъяснений OP о методе выхода AutoFill()
используйте это:
Option Explicit
Sub main()
Dim nr_rows As Long, col As Long
nr_rows = 860
With ActiveSheet
For col = 1 To 256 Step 9
.Cells(1, col).Resize(nr_rows).Value = .Cells(1, col).Value
Next col
End With
End Sub
Комментарии:
1. это было лучшее, что я мог сделать с входными данными в соответствии с вашим вопросом. возможно, вы захотите улучшить его с помощью подробного описания сценария «до» и «после» и предоставить более подробную информацию о том, что на самом деле означает «по-прежнему нет результатов»
2. Запрос не копирует результаты из строки 1, он увеличивает дату и время. Например, для столбца 1 у меня есть следующие результаты: 21.02.2016 16:00 21.02.2016 16:01 21.02.2016 16:02……
3. Мои извинения, ваш запрос хорош, но я думаю, что автозаполнение — не очень хорошая идея, потому что увеличьте дату и время
4. смотрите отредактированный ответ. В любом случае, поскольку мой предыдущий ответ уже решил ваш исходный вопрос, вы можете пометить его как принятый. Спасибо