跨dynamic启动自动填充列

我正在尝试编写一个代码来自动将工作表中的最后一列自动填充x次。

我有代码将拿起最后一列:

With ActiveSheet LC = .Cells(3, .Columns.Count).End(xlToLeft).Column End With Columns(LC).Select 

如果我指定了哪些特定的列,还会自动填充的代码

  Selection.AutoFill Destination:=Columns("BE:BQ"), Type:=xlFillDefault 

我所挣扎的是如何用连接到原始最后一列(LC)的所需代码replace列“BE:BQ”。 理想情况下,我希望自动填充以添加10个新列。 你有什么build议吗?

理想情况下,我希望代码能够遍历我的工作簿中的所有工作表 – 但这对我来说可能有点高级!

非常感谢你提前。

UPDATE

感谢您提出的build议。 我修改了代码如下。 这首先performance得很好。 不过,我自己遇到了两个问题。

问题1 – 在某些表格中填满第3行中的date字段时未填写。 它只是复制到与最后一行相同的date(即01/06/2017,但显示为Jun-17)。 我希望一次能填满一个月。

问题2 – 在第二行中有一个date,即前一个月的最后一天。 这是目前手动input,但因为我已经开发了macros,我想这将更改为一个公式等于date在单元格下面减去1天。 我试图用下面的公式做到这一点,但它完全是错误的!

 sht.Cells(2, LC).Formula = "=" & Cells(3, LC) & "-1" 

任何意见,如何解决这两个问题将不胜感激。

 Dim LC As Integer Dim LR As Long ActiveSheet.Unprotect With ActiveSheet LC = .Cells(3, .Columns.Count).End(xlToLeft).Column LR = .Cells(Rows.Count, LC).End(xlUp).Row End With Range(Cells(1, LC), Cells(LR, LC)).Select Selection.AutoFill Destination:=Range(Cells(1, LC), Cells(LR, LC + 10)),Type:=xlFillDefault 

尝试这个。 我不确定A2位,因为代码表明自动填充从第3行开始,但是如果它也应该包括在内,可以在代码中replace3和2。

 Sub x() Dim LC As Long, LR As Long, ws As Worksheet For Each ws In Worksheets With ws LC = .Cells(3, .Columns.Count).End(xlToLeft).Column LR = .Cells(.Rows.Count, 1).End(xlUp).Row .Range(.Cells(3, LC), .Cells(LR, LC)).AutoFill Destination:=.Range(.Cells(3, LC), .Cells(LR, LC + 10)), Type:=xlFillDefault .Cells(3, LC).AutoFill Destination:=.Cells(3, LC).Resize(, 10), Type:=xlFillMonths .Range("A2").Formula = "=A3-1" End With Next ws End Sub