Arrays 在多个不同位置将数组写回电子表格
我试图在将数组中的数据写回Excel电子表格时简化代码。 我有一个2行49列的数组(数据是一些图中水平部分使用的日期)。日期根据用户输入进行调整,然后写入Excel电子表格。 目前,我已经编写了下面的代码,用于将数据加载到数组中并将其写入电子表格(它可以按预期工作) 上面只是代码的一部分,因为我需要在15个不同的位置(图)包含数组。因此,我重复同一行代码很多次,这似乎是非常无效的 我已尝试使用以下简单的代码行将数组数据写回电子表格:Arrays 在多个不同位置将数组写回电子表格,arrays,excel,vba,Arrays,Excel,Vba,我试图在将数组中的数据写回Excel电子表格时简化代码。 我有一个2行49列的数组(数据是一些图中水平部分使用的日期)。日期根据用户输入进行调整,然后写入Excel电子表格。 目前,我已经编写了下面的代码,用于将数据加载到数组中并将其写入电子表格(它可以按预期工作) 上面只是代码的一部分,因为我需要在15个不同的位置(图)包含数组。因此,我重复同一行代码很多次,这似乎是非常无效的 我已尝试使用以下简单的代码行将数组数据写回电子表格: .Range("M280:BI281,M336:BI337,M
.Range("M280:BI281,M336:BI337,M394:BI395").Value2 = LocalArray
然而,使用上述代码写回数组数据会使包含N/A的单元格的每秒范围出现错误(参考下图)
如何以最简单的方式编写此代码(并且尽可能少地使用用户PC的处理能力)
多谢各位 检查和记忆源范围的维度要容易得多 假设我们有一组矩形单元格中的数据,从B2到D3:
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