首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅从公式中将值保存为值,用公式识别列

仅从公式中将值保存为值,用公式识别列
EN

Stack Overflow用户
提问于 2016-04-22 15:02:48
回答 1查看 258关注 0票数 0

使用Excel 2013工作簿,我已将Col F和Col AD从公式更改为仅在MFG小时员工工作表中的值。是否有办法调整我的代码,以识别第一列的公式和保存为值,然后第二列相同(目前的F4和AD 4)。到目前为止我的代码是:

代码语言:javascript
复制
  Sub SaveAsValuesOnly()
    Sheets("MFG Hourly Employees").Select
    Range("F4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False

    Range("AD4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Range("F4").Select
End Sub 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-22 15:18:45

代码语言:javascript
复制
Dim rngCell As Range 

For Each rngCell In Selection  
    If rngCell.HasFormula Then  
        rngCell.Value = rngCell.Value  
    End If   
Next

这个

代码语言:javascript
复制
rng.Value = rng.Value

移除公式并保存值。看来你录了马克罗,所以我会指出它。

编辑:更长更明确的代码和解释。

代码语言:javascript
复制
Sub removeFormulas()
Dim rngCell As Range
Dim searchRange As Range    
searchRange = Worksheets("Sheet1").Range("A1:D10") 

For each rngCell In searchRange
      If rngCell.HasFormula Then
          rngCell.Value = rngCell.Value
      End If
Next
End Sub

解释:

首先,我们启动一个子程序,它将对您的问题起作用。Sub由Sub removeFormulas()启动,以End Sub结束。现在我们用Dim X As Y设置变量,其中X是名称,Y是Datatype,这里是Range对象。

现在我们设置我们的searchRange,在其中我们想要寻找公式,您可以设置它来满足您的需要。在For循环中,我们可以循环遍历searchRange中的每个rngCell,当我们到达Next时,我们返回到For,直到我们遍历searchRange中的所有单元。If语句显然包含带有.HasFormula属性的任何公式,当它有公式时,我们只在单元格中写入可见的.Value并覆盖公式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36797284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档