在Excel中获取值后自动删除公式?

在Excel中获取值后自动删除公式?,excel,excel-formula,vba,Excel,Excel Formula,Vba,在excel中可以做这样的事情吗 我一直在搜索许多文章和视频 所有的人都告诉我用手来做 因此,我想知道是否有任何方法可以立即删除公式并保留值?从而消除新旧价值之间的联系 比如,我不知道,也许=sum(A1:A5,del) 类似这样的内容?有没有办法立即删除公式并保留值 否 但是,您可以使用。这是一个非常简单的代码,它将检查范围的ActiveSheet(“A1”)的值是否大于0。如果是,则将单元格另存为值,公式将消失。请注意,一旦运行代码,就不能使用“撤消”: Sub DeleteValue()

在excel中可以做这样的事情吗


我一直在搜索许多文章和视频

所有的人都告诉我用手来做

因此,我想知道是否有任何方法可以立即删除公式并保留值?从而消除新旧价值之间的联系

比如,我不知道,也许=sum(A1:A5,del)


类似这样的内容?

有没有办法立即删除公式并保留值

但是,您可以使用。这是一个非常简单的代码,它将检查范围的ActiveSheet(“A1”)的值是否大于0。如果是,则将单元格另存为值,公式将消失。请注意,一旦运行代码,就不能使用“撤消”:

Sub DeleteValue()

    With ActiveSheet
        If .Range("A1").Value2 <> 0 Then
            .Range("A1").Value2 = .Range("A1").Value2
        End If
    End With

End Sub
Sub-DeleteValue()
使用ActiveSheet
如果.范围(“A1”).值2 0,则
.Range(“A1”).Value2=.Range(“A1”).Value2
如果结束
以
端接头

有没有办法立即删除公式并保留值

但是,您可以使用。这是一个非常简单的代码,它将检查范围的ActiveSheet(“A1”)的值是否大于0。如果是,则将单元格另存为值,公式将消失。请注意,一旦运行代码,就不能使用“撤消”:

Sub DeleteValue()

    With ActiveSheet
        If .Range("A1").Value2 <> 0 Then
            .Range("A1").Value2 = .Range("A1").Value2
        End If
    End With

End Sub
Sub-DeleteValue()
使用ActiveSheet
如果.范围(“A1”).值2 0,则
.Range(“A1”).Value2=.Range(“A1”).Value2
如果结束
以
端接头
是否自动执行?没有

手动?对

选择要删除公式并仅保留值的单元格区域,复制它们,然后右键单击->粘贴特殊->值(V)

这将用公式计算的单元格值(复制时)替换单元格公式。

是否自动?没有

手动?对

选择要删除公式并仅保留值的单元格区域,复制它们,然后右键单击->粘贴特殊->值(V)


这将用公式计算的单元格值替换单元格公式(复制时)。

例如,我们在C列中输入项目。如果我们在C单元格中输入公式,我们希望公式自动转换为值。在工作表代码区域中输入以下事件宏:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rInt As Range, r As Range, C As Range
    Set C = Range("C:C")
    Set rInt = Intersect(Target, C)

    If rInt Is Nothing Then Exit Sub
    Application.EnableEvents = False
        For Each r In rInt
            If r.HasFormula Then
                r.Value = r.Value
            End If
        Next r
    Application.EnableEvents = True
End Sub
由于它是工作表代码,因此安装和自动使用非常容易:

  • 在Excel窗口底部附近的选项卡名称上单击鼠标右键
  • 选择查看代码-这将打开一个VBE窗口
  • 粘贴内容并关闭VBE窗口
  • 如果您有任何顾虑,请先在试用工作表上试用

    如果保存工作簿,宏将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

    要删除宏,请执行以下操作:

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要了解有关宏的更多信息,请参阅:

    要了解有关事件宏(工作表代码)的详细信息,请参阅:


    必须启用宏才能工作

    例如,我们在C列中输入项目。如果我们在C单元格中输入公式,我们希望公式自动转换为值。在工作表代码区域中输入以下事件宏:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim rInt As Range, r As Range, C As Range
        Set C = Range("C:C")
        Set rInt = Intersect(Target, C)
    
        If rInt Is Nothing Then Exit Sub
        Application.EnableEvents = False
            For Each r In rInt
                If r.HasFormula Then
                    r.Value = r.Value
                End If
            Next r
        Application.EnableEvents = True
    End Sub
    
    由于它是工作表代码,因此安装和自动使用非常容易:

  • 在Excel窗口底部附近的选项卡名称上单击鼠标右键
  • 选择查看代码-这将打开一个VBE窗口
  • 粘贴内容并关闭VBE窗口
  • 如果您有任何顾虑,请先在试用工作表上试用

    如果保存工作簿,宏将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 文件的格式为.xlsm而不是.xlsx

    要删除宏,请执行以下操作:

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要了解有关宏的更多信息,请参阅:

    要了解有关事件宏(工作表代码)的详细信息,请参阅:


    必须启用宏才能工作

    使用纯Excel是不可能的。然而,如果你点击左下角的“录制宏”按钮,你会看到一个全新的世界,在那里这是很容易实现的。“我一直在搜索许多文章和视频,所有这些都告诉我用手来做”-你能参考至少一个视频/书籍告诉你这一点吗?我很想看。我是StarckOverflow的新手,现在找不到回复功能。希望你能看到我的relyWell,视频很不错。如果那个家伙学会了VBA,可能会永远改变他的生活。用纯Excel是不可能的。然而,如果你点击左下角的“录制宏”按钮,你会看到一个全新的世界,在那里这是很容易实现的。“我一直在搜索许多文章和视频,所有这些都告诉我用手来做”-你能参考至少一个视频/书籍告诉你这一点吗?我很想看。我是StarckOverflow的新手,现在找不到回复功能。希望你能看到我的relyWell,视频很不错。如果那个家伙学会了VBA,它可能会永远改变他的生活。好吧,把它加入到一个工作表更改事件中,你就在那里了。@Glitch_Doctor-在某种程度上你是对的,但我想为一个从未编码过的人显示事件是相当困难的。你是对的,我只是在回答最初的问答时留下了那个专栏,以防它对OP产生误导。这仍然是一个很好的答案@VityataWell,把它加入到工作表更改事件中,你就在那里了。@Glitch_Doctor-在某种程度上你是对的