VBA заполняет диапазон определенной ячейкой

#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. смотрите отредактированный ответ. В любом случае, поскольку мой предыдущий ответ уже решил ваш исходный вопрос, вы можете пометить его как принятый. Спасибо