循环复制单元格包含与值相同的单元格中的公式粘贴

时间:2019-11-16 17:28:51

标签: excel vba

来到这里是因为我在VBA循环方面有些挣扎。

请求代码帮助以解决以下情况:

我有多个列(每个列都有一个命名范围),这些列在数据表中具有公式。我想减小文件大小,因为随着更多记录输入到数据结构中,保持所有公式都会以指数形式增加文件大小。我大约有135列公式。

步骤1-我需要将单元格复制到多个列中,以将其复制并粘贴为同一单元格中的值。第一行数据除外,该行将始终包含公式。

第2步-重新插入公式以更新第一行记录的宏。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

幸运的是不需要循环。这仅适用于 B 列。此例程将除 B1 以外的所有单元格从公式转换为值:

Sub column2values()
    Dim B1 As Range, B2N As Range, N As Long

    Set B1 = Range("B1")
    N = Cells(Rows.Count, "B").End(xlUp).Row
    Set B2N = Range("B2:B" & N)

    With B2N
        .Value = .Value
    End With
End Sub

,此子项将公式保留在 B1 中并向下复制:

Sub restoreFormulas()
    Dim B1 As Range, B2N As Range, N As Long

    Set B1 = Range("B1")
    N = Cells(Rows.Count, "B").End(xlUp).Row
    Set B2N = Range("B2:B" & N)

    B1.Copy B2N
End Sub