Arrays 在多个不同位置将数组写回电子表格

Arrays 在多个不同位置将数组写回电子表格,arrays,excel,vba,Arrays,Excel,Vba,我试图在将数组中的数据写回Excel电子表格时简化代码。 我有一个2行49列的数组(数据是一些图中水平部分使用的日期)。日期根据用户输入进行调整,然后写入Excel电子表格。 目前,我已经编写了下面的代码,用于将数据加载到数组中并将其写入电子表格(它可以按预期工作) 上面只是代码的一部分,因为我需要在15个不同的位置(图)包含数组。因此,我重复同一行代码很多次,这似乎是非常无效的 我已尝试使用以下简单的代码行将数组数据写回电子表格: .Range("M280:BI281,M336:BI337,M

我试图在将数组中的数据写回Excel电子表格时简化代码。 我有一个2行49列的数组(数据是一些图中水平部分使用的日期)。日期根据用户输入进行调整,然后写入Excel电子表格。 目前,我已经编写了下面的代码,用于将数据加载到数组中并将其写入电子表格(它可以按预期工作)

上面只是代码的一部分,因为我需要在15个不同的位置(图)包含数组。因此,我重复同一行代码很多次,这似乎是非常无效的

我已尝试使用以下简单的代码行将数组数据写回电子表格:

.Range("M280:BI281,M336:BI337,M394:BI395").Value2 = LocalArray
然而,使用上述代码写回数组数据会使包含N/A的单元格的每秒范围出现错误(参考下图)

如何以最简单的方式编写此代码(并且尽可能少地使用用户PC的处理能力)


多谢各位

检查和记忆源范围的维度要容易得多

假设我们有一组矩形单元格中的数据,从B2D3

Sub dural()
    Dim LocalArray() As Variant
    Dim rng As Range, rw As Long, cl As Long

    Set rng = Sheets("Sheet1").Range("B2:D4")
    rw = rng.Rows.Count
    cl = rng.Columns.Count

    LocalArray = rng.Value2

    Range("E6").Resize(rw, cl) = LocalArray
End Sub

我们希望在其他地方复制几次。第一次将是从E6开始的块:

Sub dural()
    Dim LocalArray() As Variant
    Dim rng As Range, rw As Long, cl As Long

    Set rng = Sheets("Sheet1").Range("B2:D4")
    rw = rng.Rows.Count
    cl = rng.Columns.Count

    LocalArray = rng.Value2

    Range("E6").Resize(rw, cl) = LocalArray
End Sub
运行此操作将产生:

所以我们需要记住的就是
rw
cl

编辑#1:

要获得循环存款的简便方法,请执行以下操作:

Sub dural()
    Dim LocalArray() As Variant
    Dim rng As Range, rw As Long, cl As Long
    Dim a

    Set rng = Sheets("Sheet1").Range("B2:D4")
    rw = rng.Rows.Count
    cl = rng.Columns.Count

    LocalArray = rng.Value2

    Range("E6").Resize(rw, cl) = LocalArray

    ' Now try looping

    For Each a In Array("a12", "b16", "c23")
        Range(a).Resize(rw, cl) = LocalArray
    Next a

End Sub

非常感谢你,我尝试了包含代码,效果非常好!但有一个问题是,对单个单元格的写入能否在一行代码中完成?还是必须单独包含(如下所示)?范围(“M280”)。调整大小(rw,cl)=本地数组范围(“M336”)。调整大小(rw,cl)=本地数组范围(“M394”)。调整大小(rw,cl)=本地数组范围(“M452”)。调整大小(rw,cl)=本地数组Excel不允许我在范围规范中包括多个单元格(即范围(“M280,M336,M394,M452”)。@Philip请参阅我的编辑#1