VBA AutoFill смежный динамический столбец приводит к ошибке? - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь автоматически заполнить динамический и соседний столбец, но получаю сообщение об ошибке.Перепробовал много советов, но ничего не работает.Буду признателен за помощь

Dim Column As Integer
Column = Workbooks("Outbound Month").Worksheets("Summary").Range("A1", Range("A1").End(xlToRight)).Columns.Count + 1

Workbooks("Outbound Month").Worksheets("Summary").Activate
ActiveSheet.Range("W1:W39").AutoFill Destination:=Range(Range(Cells(1, Column), Cells(39, Column)), Type:=xlFillDefault)

1 Ответ

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

Смежный против последнего столбца

Ваш AutoFill ничего не делает, поэтому я использовал только Copy.

Смежный

Смежный справа ВСЕГДА означает следующий правый столбец, который в данном случае будет столбцом X.

Sub AdjacentToTheRightColumn()

  Const cWBName As String = "Outbound Month"
  Const cWsName As String = "Summary"
  Const cRange As String = "W1:W39"

  With Workbooks(cWBName).Worksheets(cWsName)
    .Range(cRange).Copy .Range(cRange).Offset(0, 1)
  End With

End Sub

После последнего

После последнего столбца ТОЛЬКО означаетстолбец X, IF W - последний столбец.

Sub AfterLastColumn()

  Const cWBName As String = "Outbound Month"
  Const cWsName As String = "Summary"
  Const cRange As String = "W1:W39"

  Dim LastColumn As Integer

  With Workbooks(cWBName).Worksheets(cWsName)
      LastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
      .Range(cRange).Copy .Range(cRange) _
          .Offset(0, LastColumn - Range(cRange).Column + 1)
    End With

End Sub
...