【问题标题】:Autofill to and Adjacent Cell自动填充到相邻单元格
【发布时间】:2018-07-19 19:12:37
【问题描述】:

我对 VBA 很陌生,我找不到我正在寻找的答案。我的其余代码都在工作,但是在自动填充方面,我似乎无法理解。我有一个单元格,我想自动填充到下面的单元格。我知道这是一个非常基本的问题,但任何帮助都是值得的!这是我的代码:

Selection.AutoFill Destination:= Range(Cells.ActiveCell.Offset(1,0), Type:= _ xlFillDefault

【问题讨论】:

  • 忘了提到我不断收到“运行时 1004”错误

标签: vba excel


【解决方案1】:

你可以使用调整大小

Option Explicit
Sub Test()
    Selection.AutoFill Destination:=ActiveCell.Resize(2, 1), Type:=xlFillDefault
End Sub

【讨论】:

  • 对此有什么答案吗?
【解决方案2】:

试试这些测试。 A 列的代码回答了您最初的问题。

 Option Explicit
Sub AutofillTest()
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    Dim aRng1 As Range, aRng2 As Range

    'Autofill beginnining with only one cell as a "seed"
    ws.Range("a:d").Clear
    Set aRng1 = ws.Range("a1:a1")
    aRng1 = 1 'The "seed" cell
    Set aRng2 = aRng1.Offset(1, 0)
    aRng1.AutoFill Destination:=Range(aRng1, aRng2), Type:=xlFillSeries

    'More fun tests
    ws.Range("b1:b1") = 1
    ws.Range("c1:c1") = 1
    ws.Range("d1:d1") = CDate("5/1/2018")
    ws.Range("b1:b1").AutoFill Destination:=Range("b1:b5"), Type:=xlFillSeries 'List of numbers
    ws.Range("c1:c1").AutoFill Destination:=Range("c1:c5"), Type:=xlFillDefault 'Copy of one number
    ws.Range("d1:d1").AutoFill Destination:=Range("d1:d5"), Type:=xlFillDefault 'List of dates
End Sub

【讨论】:

  • 这是一个答案。它解决了问题,也教了更多东西。
【解决方案3】:

.AutoFill 被高估了,.FillDown/.FillRight 和 .DataSeries 通常都是更好的方法,使用相对内容一次填充所有内容始终是公式或常量的一种选择。

Selection.filldown       'ctrl+D is faster
'or,
Selection.cells(1).resize(2, 1).filldown

...

Selection.cells(1).resize(2, 1) = Selection.cells(1).formula

...

Selection.cells(1).resize(2, 1).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1

...

'only if you're feeling lucky
selection.flashfill

您没有提供足够的信息来提供明确的答案,但以上所有内容都是名为 .AutoFill 的猜谜游戏的可行替代方案,带有 Type:=xlFillDefault 参数。

【讨论】:

    猜你喜欢
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2016-08-16
    • 1970-01-01
    相关资源
    最近更新 更多