【发布时间】:2020-09-21 19:47:51
【问题描述】:
我有一个过滤数据、存储在数组中并将其粘贴到另一张表的代码。 为什么我的数组粘贴公式并留下空白值?我存储在数组中的值是公式,但我想粘贴这些值。
它应该存储这些值:
并粘贴它们,而是粘贴四个公式单元格。公式为=O10,为空等。
.Range("$A7:$AJ7").AutoFilter field:=35, Criteria1:="<>", Criteria2:="<>0", Criteria2:="<>-0"
saLastRow = .Range("AI" & .Rows.Count).End(xlUp).Row
Set sFiltered = Worksheets("BusinessDetails").Range("AI8:AI" & saLastRow).SpecialCells(xlCellTypeVisible) 'SA
ReDim Arr(1 To sFiltered.Areas.Count)
I = 0
For Each V In sFiltered.Areas
I = I + 1
Arr(I) = V
'Debug.Print I
Next V
sFiltered.Copy Sheets("Step 4 CM").Range("S10")
谢谢。
【问题讨论】:
-
V将是一个范围,并且该范围可能并不总是一个单元格。区域是一组连续的单元格。所以Arr(I) = V实际上是在创建一个数组数组,而不是一个简单的一维数组。还有处理Arr的代码在哪里?复制/粘贴也将粘贴它在工作表复制区域中的公式。您可能希望使用 PasteSpecial 仅粘贴值。 -
Arr可能是不必要的。尝试类似sFiltered.Copy Sheets("Step 4 CM").Range("S10").PasteSpecial Paste:=xlPasteValues但出现编译错误。 -
迭代区域然后迭代生成的范围,将值放入数组中。然后将数组批量加载到目标中。
-
啊我好像听不懂。