运行时错误1004在范围(Cells())
我在一些macros中有以下代码,但它需要大量的信息,我不需要。 公式如下:
Range("A1" & h & ":BD" & h).Value = Worksheets("ABC1").Range("A" & h & ":BD" & h).Value
我试图将公式更改为更加dynamic的版本,如下所示:
Sub MFGI_NAV() Dim x As Variant Dim y As Variant Worksheets("ABC1").Activate h = Cells(Rows.Count, "A").End(xlUp).Row Set WS = Sheets.Add(before:=Worksheets("ZYX"), Type:=xlWorksheet) ActiveSheet.Name = "JKL" x = 1 y = 1 While y <= 82 Cells(1, x).Select Range(Cells(1, x), Cells(h, x)).Value = Worksheets("ABC1").Range(Cells(1, y), Cells(h, y)).Value x = x + 1 y = y + 3 Wend End Sub
这个公式只需要在表格“ABC1”的每一列中的第三列,并将其放入“JKL”中的每个增量列中。
但是,当我尝试这个,我得到一个运行时错误1004。
有什么build议,我怎样才能得到这个更dynamic的工作?
顺便说一句,我要问的原因是,虽然这个文件只有82列,20K行,未来工作表可能有高达10K列和500K行(是的,我知道这是巨大的,但这是系统生成的方式信息,只有三分之一是需要的)
范围(单元格(1,x),单元格(h,x))值=工作表(“ABC1”)范围(单元格(1,y),单元格(h,y))。
你得到这个错误,因为你的单元格对象不完全合格。
尝试这个
WS.Range(WS.Cells(1, x), WS.Cells(h, x)).Value = _ Worksheets("ABC1").Range(Worksheets("ABC1").Cells(1, y), Worksheets("ABC1").Cells(h, y)).Value
同样,请在代码中限定所有对象。