【问题标题】:Copying additional inputs to excel and filling automatically将其他输入复制到 Excel 并自动填充
【发布时间】:2015-03-19 19:33:03
【问题描述】:

我需要每周将新数据从工作表复制到包含所有过去数据的现有工作表。现有的工作表列(一些)也是使用 Vba 制定的。我已经编写了将数据复制到工作表中的代码,但其他列没有自动填充(或拖动)。

Sub Transfernewdata()

Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("Sheet2")
lastrow = sht.Cells.Find("*", searchorder:=xlByRows,     searchdirection:=xlPrevious).Row
Range("D5:D" & lastrow).Copy ThisWorkbook.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 4)
Range("C5:C" & lastrow).Copy ThisWorkbook.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 3)
Range("B5:B" & lastrow).Copy ThisWorkbook.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 2)
Range("A5:A" & lastrow).Copy ThisWorkbook.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 1)
ThisWorkbook.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 0) = Date
Application.CutCopyMode = False

End Sub

我只是转移了 4 列,其余的将自动填充。我尝试输入日期(最后一行代码),但即使这样也不会填满一次。任何帮助表示赞赏,我也不明白我运行的每个模块都不会影响添加的新数据。

【问题讨论】:

  • 当您说“将自动填充其余部分”时,是否还有其他行 (E-?) 具有您希望自动填充到新填充的行中的公式?
  • @FreeMan 是的,还有更多列。例如:我复制了 4 列的 100 行,它们被复制,但其值取决于这些列的其他列没有填满。我需要拖动来填充它,但我想通过 VBA 来完成。如果可能的话,你能否告诉我为什么 Date 语句直到最后才填满。我认为这也应该提示我填写其他行。

标签: vba excel


【解决方案1】:

改变这个:

ThisWorkbook.Worksheets("Sheet1").Range("a65536").End(xlUp).Offset(1, 0) = Date

到这里:

ThisWorkbook.Worksheets("Sheet1").Range("A" & lastrow & ":a65536") = Date

根据您在下面的 cmets 中提供的其他信息,我建议将您的数据制作成表格。每次在表格中插入一行时,公式应该会自动复制自己。

如果您将光标移动到数据集的左上角,然后按 Ctrl-T,它将自动将您已经拥有的所有连续数据列在表中。 (您必须酌情勾选或取消勾选“我的数据有标题”问题。)

【讨论】:

  • 这将导致日期到 65536 行,这不是必需的,但谢谢。
  • 那我不知道你在追求什么。你将不得不再次尝试解释它。也许是一张图片或“文字图形”来展示你想要的结果。
  • 我添加了图片。所以我总是从另一张纸上复制 B 列和 c 列的值。现在我需要的是,当我添加 B 和 C 的值时,其他列应该开始填充,因为它们只需要 B 和 C 的值,我正在复制但这些列没有填写。还有 Date 语句您建议将日期列填充到 65536 ,而我只希望它填充到具有 B 和 C 输入的行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 2014-09-17
  • 2016-05-24
  • 2021-11-10
相关资源
最近更新 更多