首页 > 解决方案 > 如何将所有单元格值存储在 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 中,以创建运行我将传递的宏所需的工作表。涉及更多代码,但我正在分享我发现的代码,作为我提出的特定问题的解决方案。

谢谢大家的意见,我可能会在某些时候在我编写的其他代码中使用一些数组技术。

标签: excelvba

解决方案


推荐阅读