如何在Excel VBA中插入并拖动公式直到最后一行

迪帕克

在此处输入图片说明我想在 E 行的末尾插入仅计算每月第一天(1.Nov.2017、1.Dec.2017 等)的公式,并将其拖到等于 D 行值的末尾。我使用了下面的代码但不起作用。

仅当 A:D 有数据时,我才需要“E12 : E21”中的值作为 01.Nov.2017。但是 A:D 会自动计算。下个月 A22 :D24 将包含数据。所以我需要“E22:E24”中的值作为 01.Dec.2017。帮我

Private Sub CommandButton1_Click()

Range("E" & Rows.Count).End(xlUp).Offset(1, 0).Select
Run FirstDayInMonth()
Selection.AutoFill Destination:=Range("D" & Column.count).End(xlUp).Offset(0, 1), Type:=xlFillCopy

End Sub

Function FirstDayInMonth(Optional dtmDate As Date = 0) As Date
Range("E" & Rows.Count).End(xlUp).Offset(1, 0).Select
    If dtmDate = 0 Then
       dtmDate = Date
    End If
FirstDayInMonth = DateSerial(Year(dtmDate), _
Month(dtmDate), 1)
End Function
马尔钦·施泽涅茨

起初,您过度使用 Select。它应该仅在一种情况下在代码中使用 - 如果您希望宏在最后指向某个单元格。例如,请参阅这篇文章
其次,避免智能 UI 反模式。什么是智能 UI,您可以在这里阅读

第三,我认为你应该在这里使用 sub,而不是 function。

Sub FillFirstDay(Optional dtmDate As Double = 1)

Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long, firstRow As Long

Set ws = ActiveSheet 'You should assign your sheet here, for example by name

'Then we find our range in E column
With ws
    lastRow = .Range("D" & .Rows.Count).End(xlUp).Row
    firstRow = .Range("E" & .Rows.Count).End(xlUp).Row + 1
    Set rng = Range(.Range("E" & firstRow), .Range("E" & lastRow))
End With

If firstRow >= lastRow Then Exit Sub

'And finally add first date of month
With rng
    .Value = DateSerial(Year(dtmDate), Month(dtmDate), 1)
    .NumberFormat = "yyyy-mm-dd" 'or whatever date format do you like
End With

End Sub

If firstRow >= lastRow Then Exit Sub 行在 E 列中的日期已经填满时终止该过程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

求和直到使用VBA在Excel中添加公式的最后一行

来自分类Dev

如何在最后一行中插入公式

来自分类Dev

Exce VBA如何生成从特定行开始到最后一行结束的行数?公式有缺陷

来自分类Dev

如何使用“ sed或gawk”删除文本块,直到最后一行之前的第三行

来自分类Dev

找到一行中的最后三个单元格剪切并粘贴到最后三列excel vba

来自分类Dev

如何通过在一行中搜索一定范围的列,直到在VBA中包含文本的最后一行来删除重复项?

来自分类Dev

如何在不将列表另存为文件的情况下循环循环列表(读取每一行直到最后)?

来自分类Dev

列中每一行的Excel VBA cell.Formula(就像我将公式向下拖动一样)

来自分类Dev

下一行的 Excel VBA 公式

来自分类Dev

我如何在RowDataBound的gridview中找到最后一行

来自分类Dev

如何从工作簿 A 的 2 个单元格复制数据并复制到单元格中的工作簿 B,以及如何开始 for 循环直到最后一行/列

来自分类Dev

如何知道最后一行填写VBA(Excel)?

来自分类Dev

如何粘贴到最后一行而不包括第一行(标题)?

来自分类Dev

如何在Excel for Mac(2011)中通过键盘插入一行

来自分类Dev

如何在Excel中拖动的每一行将单元格引用增加7行

来自分类Dev

Excel VBA:如何在表的最后一行的第一个单元格中粘贴一个值?

来自分类Dev

如何从单独的Excel工作表VBA中删除最后一行

来自分类Dev

Excel公式,获取动态范围的最后一行

来自分类Dev

如何在VBA(Excel)中遍历行

来自分类Dev

在excel的单独工作表上找不到最后一行

来自分类Dev

如何选择第二行到最后一行的范围

来自分类Dev

如何在bash中执行输出的最后一行?

来自分类Dev

如何在bash中执行输出的最后一行?

来自分类Dev

如何在Python中打印列表的最后一行?

来自分类Dev

如何从表格中删除表格的最后一行,而没有其他行插入数据?

来自分类Dev

如何在Excel中编写复杂的公式?

来自分类Dev

如何在Excel中编写复杂的公式?

来自分类Dev

如何在Excel公式中包含多个IF?

来自分类Dev

如何在excel中找到带有某个关键字的最后一行

Related 相关文章

  1. 1

    求和直到使用VBA在Excel中添加公式的最后一行

  2. 2

    如何在最后一行中插入公式

  3. 3

    Exce VBA如何生成从特定行开始到最后一行结束的行数?公式有缺陷

  4. 4

    如何使用“ sed或gawk”删除文本块,直到最后一行之前的第三行

  5. 5

    找到一行中的最后三个单元格剪切并粘贴到最后三列excel vba

  6. 6

    如何通过在一行中搜索一定范围的列,直到在VBA中包含文本的最后一行来删除重复项?

  7. 7

    如何在不将列表另存为文件的情况下循环循环列表(读取每一行直到最后)?

  8. 8

    列中每一行的Excel VBA cell.Formula(就像我将公式向下拖动一样)

  9. 9

    下一行的 Excel VBA 公式

  10. 10

    我如何在RowDataBound的gridview中找到最后一行

  11. 11

    如何从工作簿 A 的 2 个单元格复制数据并复制到单元格中的工作簿 B,以及如何开始 for 循环直到最后一行/列

  12. 12

    如何知道最后一行填写VBA(Excel)?

  13. 13

    如何粘贴到最后一行而不包括第一行(标题)?

  14. 14

    如何在Excel for Mac(2011)中通过键盘插入一行

  15. 15

    如何在Excel中拖动的每一行将单元格引用增加7行

  16. 16

    Excel VBA:如何在表的最后一行的第一个单元格中粘贴一个值?

  17. 17

    如何从单独的Excel工作表VBA中删除最后一行

  18. 18

    Excel公式,获取动态范围的最后一行

  19. 19

    如何在VBA(Excel)中遍历行

  20. 20

    在excel的单独工作表上找不到最后一行

  21. 21

    如何选择第二行到最后一行的范围

  22. 22

    如何在bash中执行输出的最后一行?

  23. 23

    如何在bash中执行输出的最后一行?

  24. 24

    如何在Python中打印列表的最后一行?

  25. 25

    如何从表格中删除表格的最后一行,而没有其他行插入数据?

  26. 26

    如何在Excel中编写复杂的公式?

  27. 27

    如何在Excel中编写复杂的公式?

  28. 28

    如何在Excel公式中包含多个IF?

  29. 29

    如何在excel中找到带有某个关键字的最后一行

热门标签

归档