使用Excel 2013工作簿,我已将Col F和Col AD从公式更改为仅在MFG小时员工工作表中的值。是否有办法调整我的代码,以识别第一列的公式和保存为值,然后第二列相同(目前的F4和AD 4)。到目前为止我的代码是:
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 发布于 2016-04-22 15:18:45
Dim rngCell As Range
For Each rngCell In Selection
If rngCell.HasFormula Then
rngCell.Value = rngCell.Value
End If
Next这个
rng.Value = rng.Value移除公式并保存值。看来你录了马克罗,所以我会指出它。
编辑:更长更明确的代码和解释。
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并覆盖公式。
https://stackoverflow.com/questions/36797284
复制相似问题