excel - 如何将所有单元格值存储在 VBA 中?
问题描述
我想要做的是将整个工作表作为值复制到 VBA 中。我想要做的不是复制/粘贴功能,而是让代码写入每个单元格值,以便复制的原始页面不需要可访问。
因此,而不是类似的东西:
Range("D9").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
它看起来像这样:
Range("D9").Select
ActiveCell.FormulaR1C1 = "What ever cell value"
我想复制整个工作表并将其作为每个单元格的公式保存在 VBA 中。由于文本很好,我需要复制的数据中不会出现任何实际公式,如果这样更容易的话。
非常感谢。
回答:
评论中的解决方案比我试图找到的解决方案更好。但是我有理由试图弄清楚这段代码。我正在为 excel 菜鸟创建复杂的宏。我不想信任他们来创建数据表,甚至从其他工作簿中复制它们,这是我将提供给他们的宏所需的。
我编写的代码在很多情况下都不起作用,例如单元格包含引号或公式,但它适用于我将要使用的内容。在我使用它将整个工作表格式化为文本并提前修剪每个单元格之前,将添加几行代码,但这是基本代码:
Sub VBA_Formulas()
Dim r As Range
Set r = Selection
For Each r In Intersect(Selection, ActiveSheet.UsedRange)
r.Value = "Range(" & Chr(34) & r.Address & Chr(34) & ").Value = " & Chr(34) & r.Value & Chr(34)
Next r
End Sub
然后,我会将代码运行的所有单元格复制到 VBA 中,以创建运行我将传递的宏所需的工作表。涉及更多代码,但我正在分享我发现的代码,作为我提出的特定问题的解决方案。
谢谢大家的意见,我可能会在某些时候在我编写的其他代码中使用一些数组技术。