Excel или VBA Проблема?Range.Autofill Метод иногда начинается там, где я не хочу - PullRequest
0 голосов
/ 01 декабря 2018

Я новичок в VBA и пытаюсь создать кнопку управления формой, которая при нажатии автоматически заполняет очень сложную формулу вниз по столбцу, пока не достигнет конца динамической сводной таблицы.Сводная таблица собирает данные с другого листа / вкладки под названием «Импорт данных», состоящего из активов и соответствующей информации об амортизации.

Итак, это прекрасно работает, когда на моей вкладке «Импорт данных» может быть 100 или более ресурсов, но когда их меньше, она как-то начинает применять приведенную выше формулу, где я хочу, чтобы диапазон / автозаполнение начиналось.Чтобы уточнить, если у меня в сводной таблице около 7 активов (7 строк), и я хочу, чтобы формулы заполняли диапазон автозаполнения (O15: O400), он начинает автозаполнение с (O5: O400) <- Может быть, O400.</p>

Код:

Sub AutoFill()
  Dim k As Long

'To get a number rows taken up by assets
  k = Range("A15", Range("A15").End(xlDown)).Rows.Count
'To apply AutoFill at specified range
  Range("O15").AutoFill Destination:=Range("O15:O" & k)

End Sub

Я использую столбец A, потому что это первичный ключ для активов, поэтому всегда будет первичный ключ.

Заранее спасибо!

1 Ответ

0 голосов
/ 01 декабря 2018

Вы подсчитываете количество ячеек в диапазоне, начиная со строки 15, но затем ожидаете, что это число будет последней строкой.

Если End попадет в строку 30, то Rows.Count будет равно 16, азаполнение будет заполнять только O15:O16.

Если в последней строке 25, то счетчик будет 11, а диапазон для заполнения будет O11:O15:

Sub AutoFill()
  Dim k As Long
  With Worksheet("Sheet1") 'Change to your sheet
      'To get a number rows taken up by assets
      k = .Range("A15").End(xlDown).Row
      'To apply AutoFill at specified range
      .Range("O15").AutoFill Destination:=.Range("O15:O" & k)
  End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...