我在许多宏中都有以下代码,但它需要大量的信息,而我并不需要这些信息。公式如下:
Range("A1" & h & ":BD" & h).Value = Worksheets("ABC1").Range("A" & h & ":BD" & h).Value
我尝试将公式更改为更动态的版本,如下所示:
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
此公式仅接受表格中的每第3列&#34; ABC1&#34;并将其放入&#34; JKL&#34;。
中的每个增量列然而,当我尝试这个时,我得到一个运行时错误1004。
关于如何让它更动态地运作,有什么建议吗?
BTW,我问的原因是,虽然这个文件只有82列和20k行,但未来的表可能有多达10k列和500k行(是的,我知道这很大,但这就是系统生成信息,只需要1/3)答案 0 :(得分:2)
范围(Cells(1,x),Cells(h,x))。Value = Worksheets(“ABC1”)。Range(Cells(1,y),Cells(h,y))。Value
您收到该错误,因为您的单元格对象不是完全限定的。
试试这个
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
同样,请在代码中限定所有对象。