Excel VBA:将原始数据复制到目标工作表的特定单元格中

时间:2014-08-10 12:54:44

标签: excel vba excel-vba

我是VBA的初学者,所以任何一种提示都可能对我有所帮助。

我在同一个工作簿中有两个工作表,即sheet1(" rawdata")和sheet2("概述)。

每天早上,我都会将下载的数据复制到sheet1(" rawdata")。这里行数不尽相同,但标题/列始终相同。在此之后,我需要将特定单元格复制到另一个工作表中。以下是"规则"我在考虑:

1。)我想始终将rawdata表格E9,W9,X9和Y9中的单元格复制到目标表格中的特定单元格中

我有类似的东西(有效): 工作表("概述")。范​​围(" X10")。值=工作表(" rawdata")。范​​围(" E9")。值

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

.... =工作表(" rawdata")。范​​围(" E1")。结束(xlDown).Value(不工作: - ()

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

你认为你能帮我解决一些代码或有用的提示吗?

2 个答案:

答案 0 :(得分:2)

假设列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应该引用工作表(" 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列中没有数据或已删除行的情况,建议更好的解决方案。

答案 1 :(得分:0)

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

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

那么您将拥有这个:

enter image description here

最后,只需读取单元格值:

Range(FindLastColumnECellAvailable).Value

enter image description here

问候

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