来到这里是因为我在VBA循环方面有些挣扎。
请求代码帮助以解决以下情况:
我有多个列(每个列都有一个命名范围),这些列在数据表中具有公式。我想减小文件大小,因为随着更多记录输入到数据结构中,保持所有公式都会以指数形式增加文件大小。我大约有135列公式。
步骤1-我需要将单元格复制到多个列中,以将其复制并粘贴为同一单元格中的值。第一行数据除外,该行将始终包含公式。
第2步-重新插入公式以更新第一行记录的宏。
提前谢谢!
答案 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