【问题标题】:Copy raw data into specific cells of a target sheet将原始数据复制到目标工作表的特定单元格中
【发布时间】:2014-08-10 12:54:44
【问题描述】:

我在同一个工作簿中有两个工作表,即 sheet1(“rawdata”)和 sheet2(“Overview”)。

我将下载的数据复制到 sheet1(“原始数据”)中。这里的行数不同,但标题/列总是相同的。在此之后,我需要将特定单元格复制到另一个工作表中。

以下是我正在考虑的“规则”:

1) 始终将原始数据表 E9、W9、X9 和 Y9 中的单元格复制到目标表中的特定单元格中。我有这样的东西(有效):

Worksheets("overview").Range("X10").Value = Worksheets("rawdata").Range("E9").Value

2) 始终复制最后一行 E 列中的值。但是,最后一行从 rawdata 到 rawdata 不同,而列 (E) 保持不变。我试过这样的事情:(不工作)

....= Worksheets("rawdata").Range("E1").End(xlDown).Value

3) 脚本应该链接到按钮,当我再次单击按钮插入工作表 rawdata 中的数据时,数据应该插入到工作表概览的下一个(下一个)列中。

【问题讨论】:

标签: excel vba


【解决方案1】:

假设 E 列总是有数据。在这种情况下应该是正确的。

很抱歉试图简化并破坏了它。

LastRow_WithDataInColumnE = Worksheets("rawdata").Range("E" & .Rows.Count).End(xlUp).Row

应该是

With Worksheets("rawdata")
    LastRow_WithDataInColumnE = .Range("E" & .Rows.Count).End(xlUp).Row
End With

现在 .Rows.Count 应该引用 Worksheets("rawdata")

Worksheets("overview").Range("X10").Value = Worksheets("rawdata").Range("E" & .Rows.Count).End(xlUp).Row.Value

应该是

With Worksheets("rawdata")
    Worksheets("overview").Range("X10").Value = .Range("E" & .Rows.Count).End(xlUp).Row.Value
End With

这里有一个讨论Error in finding last used cell in VBA。针对 E 列中没有数据或行已被删除的情况提出更好的解决方案。

【讨论】:

  • 非常感谢。实际上,列 E 中总是有数据,但是,代码不起作用。在“Rows.Count”中检测到错误与消息(无效引用)。 :-( 您是否知道为什么会显示此消息?
【解决方案2】:

您可以执行以下操作来获取 E 列中的最后一个数据范围:

Public Function FindLastColumnECellAvailable()
    FindLastColumnECellAvailable = "E" & WorksheetFunction.CountA(Range("E:E"))
End Function

然后你会得到这个:

最后只读取单元格值:

Range(FindLastColumnECellAvailable).Value

问候

对不起 “提前”道歉,我刚刚阅读了日期,希望这会对您或其他任何人有所帮助,这是我的第二天

【讨论】:

    猜你喜欢
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多