Excel VBA宏来清理财务报告

时间:2014-11-14 21:58:57

标签: excel excel-vba vba

我必须清理包含敏感数据的财务报告,但仍保留报告的外观,感觉和目的。我正在寻找创建一个宏来查找所有数字数据(非公式)并用数字(或理想情况下是一个随机数)对其进行多次更改值,从而对我公司的顾问进行消毒处理。< / p>

我到目前为止找到的脚本是这样的。它适用于清除所有数字数据,保留文本和公式。有人可以帮我修改这个VBA代码,用数字多个所有数值而不是删除它吗?

For Each wks In Worksheets
    'ignore errors in case there is only formulas
    On Error Resume Next
    wks.Cells.SpecialCells (xlCellTypeConstants, 1).ClearContents
    wks.Cells.SpecialCells (xlCellTypeConstants, 4).ClearContents
    wks.Cells.SpecialCells (xlCellTypeConstants, 16).ClearContents

    On Error GoTo 0
Next
Set wks = Nothing

1 个答案:

答案 0 :(得分:2)

以下内容将使工作簿中的每个数字乘以“不同的”数字。随机数介于1.2和3之间,但保留公式。对每个值使用不同的随机数将使某人几乎不可能破解&#34;魔术数字#34;。有关计算随机数的更多方法,请参阅this link

Sub scrubNumbers()
    Dim rRange As Range, rCell As Range
    Dim wkw As Worksheet
    Dim randomNum As Double

    For Each wks In Worksheets
        On Error Resume Next
        Set rRange = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants, xlNumbers)

        For Each rCell In rRange
            randomNum = Rnd * (3 - 1.2) + 1.2
            rCell = rCell.Value * randomNum
        Next rCell
    Next
    Set wks = Nothing
End Sub

在:

enter image description here

后:

enter image description here