我正在尝试将一个工作表的excel表复制到另一个工作表。 尝试复制范围时,使用变量x标识F列中的最后一个非空单元格时出现运行时错误1004。
Future
我希望输出等于复制的范围。
答案 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
...请注意,这两个复制行有点可疑。第一个副本将被第二个副本覆盖,但是,话虽如此,一个看上去是硬编码的尝试,另一个是您要使之动态的行,因此我将其从答案中删除了。
看看是否对您有帮助