Excel VBA宏:按工作日频率自动填充列表

Excel VBA宏:按工作日频率自动填充列表,vba,excel,Vba,Excel,有了这个宏,我可以在每日时间序列数据的底部插入一个新行。宏执行得很好,但即使我指定使用工作日填充序列并避免周末,它仍然不这样做,而是填充一周中的所有天 对我可能遗漏的内容有什么建议吗 请同时查看屏幕截图,以便更好地理解 非常感谢 Sub Weekday_Data_Update() Range("A2").Select Selection.End(xlDown).Select ActiveCell.Offset(-1, 0).Range("A1").Select Ra

有了这个宏,我可以在每日时间序列数据的底部插入一个新行。宏执行得很好,但即使我指定使用工作日填充序列并避免周末,它仍然不这样做,而是填充一周中的所有天

对我可能遗漏的内容有什么建议吗

请同时查看屏幕截图,以便更好地理解

非常感谢

  Sub Weekday_Data_Update()

   Range("A2").Select
   Selection.End(xlDown).Select
   ActiveCell.Offset(-1, 0).Range("A1").Select
   Range(Selection, Selection.End(xlToRight)).Select
   Range(Selection, Selection.End(xlDown)).Select
   Selection.Resize(3).Select
   Selection.DataSeries Rowcol:=xlColumns, Type:=xlAutoFill, Date:=xlWeekday,  _
   Trend:=False

End sub
宏如何错误填充日期的示例
我被你所有的上下横移弄糊涂了。要仅使用工作日在一个范围内扩展日期,将使用如下语法:

Option Explicit

Public Sub Test()
    With Worksheets("Sheet1")
        .Range("A2").AutoFill Destination:=.Range("A2:A7"), Type:=xlFillWeekdays
    End With
End Sub
.Range("A2").AutoFill Destination:=.Range(.Cells(2, "A"), .Cells(.Cells.SpecialCells(xlLastCell).Row, "A")), Type:=xlFillWeekdays
您可以按如下方式构建最后使用的单元格填充:

Option Explicit

Public Sub Test()
    With Worksheets("Sheet1")
        .Range("A2").AutoFill Destination:=.Range("A2:A7"), Type:=xlFillWeekdays
    End With
End Sub
.Range("A2").AutoFill Destination:=.Range(.Cells(2, "A"), .Cells(.Cells.SpecialCells(xlLastCell).Row, "A")), Type:=xlFillWeekdays

下面的代码将只打印工作日

Sub Weekday_Data_Update()


Dim startRange As Range
Dim stopRange As Range

'Specify the cell where the date starts
Set startRange = Sheets("Sheet1").Range("A2")

'Specify the cell until which you want weekdays to be displayed
Set stopRange = Sheets("Sheet1").Range("A2:A6")

startRange.Select
Selection.AutoFill Destination:=stopRange, Type:=xlFillWeekdays



End Sub


p.S:不确定为什么在代码中有许多范围选择。

根据MSDN,
日期:=xlWeekday
仅在您使用
类型:=xl按时间顺序

所以,试试看

Selection.DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlWeekday,  _
Trend:=False

您可能也会感兴趣,谢谢您的评论。您提出的语法似乎只在工作日填充新行。使用这种语法的唯一问题是,每个日期的相邻单元格(其中包含公式)都作为一个系列填充,因此不使用公式填充。你认为这个问题可以在保持你建议的语法的同时解决吗?我不知道你对相邻列的要求是什么。这个答案解决了您的Q re
.DataSeries
。您应该研究
DataSeries
与其他方法(例如
AutoFill
)的行为,以确定最适合您的情况