|
求教大神们~~~
###资料说明###
1. J2:M2为公式下拉填满的资料
2. 通常会下拉填满公式函数后,再将J3:M&lastRow复制贴上值,避免执行效率问题
###问题点###
若是资料行或列太多,则执行上会发常慢,比如说有100万笔资料时,使用autofill下拉填满公式 +再将J3:M&lastRow复制贴上值,执行就会很久。
###需求###
是否能使用数组的方式来执行类似的作业以提高执行效率
下列是试着找的资料来执行,但发现公式并没有「下拉填满」而是同一行的公式都变成与J2:M2相同…
有哪位比较了解数组的大神能救救此问题,谢谢哈
- Sub Test()
- Dim ws As Worksheet
- Set ws = ThisWorkbook.ActiveSheet
-
- Dim lastRow As Long
- lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
-
- Dim formulasArray As Variant
- formulasArray = ws.Range("J2:M2").Formula
-
- Dim outputArray() As Variant
- ReDim outputArray(1 To lastRow - 1, 1 To UBound(formulasArray, 2))
-
- Dim i As Long, j As Long
- For i = 1 To UBound(outputArray, 1)
- For j = 1 To UBound(outputArray, 2)
- outputArray(i, j) = formulasArray(1, j)
- Next j
- Next i
-
- ws.Range("J2:M" & lastRow) = outputArray
-
- End Sub
复制代码
|
|