Excel VBAmacros清理财务报告

我必须清理包含敏感数据的财务报告,但仍要保持报告的外观,感觉和目的。 我正在寻找创build一个能够find所有数字数据(非公式)的macros,并通过一个数字(或者理想的随机数字)来改变这个值,从而为我公司的顾问消毒。

我到目前为止发现的脚本是这样的。 它可以清除所有的数字数据,保留文本和公式。 有人可以帮我修改这个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.2和3之间的“不同的”随机数字,并保留公式。 对每个值使用不同的随机数将使得人们几乎不可能破解“幻数”。 有关计算随机数的更多方法,请参阅此链接

 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 

之前:

在这里输入图像说明

后:

在这里输入图像说明