如何将范围从某些单元格复制到某些列中的最后一个非空单元格

时间:2019-04-23 07:36:49

标签: excel vba

我正在尝试将一个工作表的excel表复制到另一个工作表。 尝试复制范围时,使用变量x标识F列中的最后一个非空单元格时出现运行时错误1004。

Future

我希望输出等于复制的范围。

2 个答案:

答案 0 :(得分:0)

我的 GUESS 是因为这与代码Cells中的Range(Cells(1,1), Cells(x, 6))引用不符合工作簿这一事实有关。

尝试一下,也许:

Sub button_click()

Dim x As Long
Set NewBook = Workbooks.Add

With Workbooks("wb").Worksheets("ws")
    x = .Range("F100").End(xlUp).Row
    .Range(.Cells(1,1), .Cells(x, 6)).Copy
End With

NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues) 
End Sub

请注意,通过添加With...语句,然后包含Range(.Cells(而不是Range(Cells(,我们现在明确表示要引用的单元格在此工作表中。

希望这能解决问题!

答案 1 :(得分:0)

您的尝试让我有些困惑,但这可能更多地反映在我身上,而不是您。

我没有调整您的代码,我只是试图修复错误的行,因此请查看我所做的更改。

Sub Button_click()
    Dim x As Long

    x = Range("F100").End(xlUp).Row

    Set NewBook = Workbooks.Add

    Workbooks("wb").Worksheets("ws").Range(Cells(1, 1).Address & ":" & Cells(x, 6).Address).Copy

    NewBook.Worksheets("Sheet1").Range("A1").PasteSpecial (xlPasteValues)
End Sub

...请注意,这两个复制行有点可疑。第一个副本将被第二个副本覆盖,但是,话虽如此,一个看上去是硬编码的尝试,另一个是您要使之动态的行,因此我将其从答案中删除了。

看看是否对您有帮助