【问题标题】:How do I auto-fill excel Table data range to right dynamically using vba code如何使用 vba 代码自动将 Excel 表格数据范围自动填充到右侧
【发布时间】:2019-09-23 04:17:14
【问题描述】:

我想编写 VBA 代码,用于根据给定日期将 Excel 表格范围数据动态自动填充到右侧列。 例如。如果我在工作表中为“Sep-19”提供日期,它应该会自动将包含 9 月 19 日数据的表格范围自动填充到右侧。我正在使用 Excel 2016 版本。 下面是表格数据:

我已经尝试了一些代码,下面是它的 vba 代码:

Sub Macro4()

Range("Table1[[#Headers],[Month]]").Select
Selection.End(xlToRight).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.FillRight
Range("Table1[[#All],[Aug-19]:[Sep-19]]").Select

End Sub

我希望代码最后的Range("Table1[[#All],[Aug-19]:[Sep-19]]").Select 根据给定月份动态设置,我该怎么做?

【问题讨论】:

  • 你能提供一个输入和期望输出的例子吗?我认为你想要实现的目标不是很清楚
  • 我想找到最后使用的列,只需将表格列动态向右拖动即可。例如。上表数据包含截至 8 月 19 日的数据,我想要 vba 代码,它将向右拖动/自动填充数据(在右侧添加一列包含 9 月 19 日的数据)。我已经在行中设置了公式。

标签: excel vba


【解决方案1】:

以下代码将选择列的动态范围和从 A1 开始的前 6 行

Sub rg()
Dim sht As Worksheet
Set sht = Worksheets("Data")

Dim LastRow As Long
Dim LastCol As Long

LastRow = Cells(Rows.Count, "A").End(xlUp).Row
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Columns(LastCol).Copy
Columns(LastCol + 1).Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

End Sub

【讨论】:

  • 嗨 Angad,感谢您的代码,但我想每月自动填充表格以向右插入一个新列,您能帮我吗?
  • @Vish-请参考更新后的专栏,希望它能达到您的目的
  • 感谢 Angad,提供此代码,但每次选择和复制第 1 列并在第 2 列中粘贴值时。我想复制最后一列并在其后粘贴值,您能帮帮我吗?
【解决方案2】:

谢谢大家,终于解决了我的问题,下面是代码。

Sub Macro4()

    Range("Table1[[#Headers],[Month]]").Select
    Selection.End(xlToRight).Select
    Range(Selection, Selection.End(xlDown)).Copy

    ActiveCell.Offset(0, 1).PasteSpecial xlPasteAll
    ActiveCell.FormulaR1C1 = Range("N3").Value


End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 2015-01-31
    相关资源
    最近更新 更多