VBA AutoFill 相邻动态列导致错误?

Posted

技术标签:

【中文标题】VBA AutoFill 相邻动态列导致错误?【英文标题】:VBA AutoFill adjacent dynamic column results in error? 【发布时间】:2018-12-05 13:37:20 【问题描述】:

我正在尝试自动填充动态列和相邻列,但出现错误。尝试了很多技巧,但没有任何效果。感谢您的帮助

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】:

相邻与最后一列

您的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

最后

最后一列之后ONLY表示X列,IFW是最后一列。

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

【讨论】:

以上是关于VBA AutoFill 相邻动态列导致错误?的主要内容,如果未能解决你的问题,请参考以下文章

Excel 或 VBA 问题? Range.Autofill 方法有时会从我不想要的地方开始

将前缀 vba 函数限制为动态范围

访问 VBA:连接动态列并循环执行

应用公式,然后自动填充数据,直到列中的最后一个可见单元格:VBA

VBA Excel小计动态范围不起作用

vbA autofill 时提示“类range的autofill方法无效”