Arrays 在VBA中从不同的范围读入数组并覆盖到相同的范围

Arrays 在VBA中从不同的范围读入数组并覆盖到相同的范围,arrays,vba,distinct,cells,Arrays,Vba,Distinct,Cells,我想从VBA中的不同范围中读取数据,其中有通过某些公式计算的值,并用已保存的值覆盖这些范围,以便自动删除单元格中的公式 代码如下所示: allValues = Range("AR8:AW8,AR10:AW10,AR12:AW24,AR26:AW52,AR54:AW61,AR64:AW87,AR89:AW94,AR96:AW96,AR98:AW104,AR106:AW106,AR108:AW110,AR112:AW122,AR125:AW140,AR142:AW162,AR164:AW192,AR

我想从VBA中的不同范围中读取数据,其中有通过某些公式计算的值,并用已保存的值覆盖这些范围,以便自动删除单元格中的公式

代码如下所示:

allValues = Range("AR8:AW8,AR10:AW10,AR12:AW24,AR26:AW52,AR54:AW61,AR64:AW87,AR89:AW94,AR96:AW96,AR98:AW104,AR106:AW106,AR108:AW110,AR112:AW122,AR125:AW140,AR142:AW162,AR164:AW192,AR194:AW196,AR198:AW198,AR200:AW202,AR204:AW218,AR220:AW230,AR232:AW232,AR234:AW240").Value

Range("AR8:AW8,AR10:AW10,AR12:AW24,AR26:AW52,AR54:AW61,AR64:AW87,AR89:AW94,AR96:AW96,AR98:AW104,AR106:AW106,AR108:AW110,AR112:AW122,AR125:AW140,AR142:AW162,AR164:AW192,AR194:AW196,AR198:AW198,AR200:AW202,AR204:AW218,AR220:AW230,AR232:AW232,AR234:AW240")= allValues
对于连词范围,这样的想法是可行的,但对于连词范围,则根本不可行


非常感谢您的任何意见。

对于多区域范围,请在以下区域进行迭代:

Dim r As Range
For Each r In Sheet1.Range("AR8:AW8, AR10:AW10, ..., ...").Areas
    r.Value = r.Value
Next
我想这样说:

With Range("AR8:AW8,AR10:AW10,AR12:AW24,AR26:AW52,AR54:AW61,AR64:AW87,AR89:AW94,AR96:AW96,AR98:AW104,AR106:AW106,AR108:AW110,AR112:AW122,AR125:AW140,AR142:AW162,AR164:AW192,AR194:AW196,AR198:AW198,AR200:AW202,AR204:AW218,AR220:AW230,AR232:AW232,AR234:AW240")
    .Value = .Value
End With

您是否需要将值存储在内存中,或者只是尝试将公式转换为值?我只是尝试用相应的值替换公式,而不使用for循环。我不需要把它们存储在内存中。谢谢你让我澄清此事!在处理多项选择时,您将遇到许多问题。我不相信在这种情况下可以避免for循环,除非选择一个连续的范围。您是否考虑过将整个工作表的公式更改为值?或者你反对使用for循环有什么特别的原因吗?谢谢你Nathan的输入,最后我决定使用for循环:)回答得好。比我拥有的好多了!根据需要量身定做,简直是太棒了。非常感谢你!我测试了这个方法,发现它只保留了第一个值,而不是所有的独立值。你也知道吗?我很感谢你的意见