ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用vba代码为选定区域添加干扰数据防止普通数值复制?

如何用vba代码为选定区域添加干扰数据防止普通数值复制?

作者:绿色风 分类: 时间:2022-08-17 浏览:124
楼主
kevinchengcw
Q: 如何用vba代码为选定区域添加干扰数据防止普通数值复制?
A: 代码如下:
  1. Sub test()
  2. Dim Rng As Range, R As Range, N%, I%, Arr, Str$, Str2$, Col&
  3. Arr = Split("a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z", ",") '设定干扰码数组
  4. On Error GoTo Skip  '设定出错跳转
  5. Set Rng = Application.InputBox("请用鼠标选择要添加干扰数据的单元格范围:", "选择区域", , , , , , 8) '选择单元格范围
  6. For Each R In Rng   '循环各个单元格
  7.     If R <> "" Then '不处理空单元格
  8.         N = (Int(Rnd * 10) Mod 5) + 1   '取得随机字符的个数(1-5个)
  9.         Str2 = R.Value  '提取原有数据
  10.         Str = ""    '初始化字符串为空
  11.         For I = 1 To N * 2  '循环随机数2倍,一段加前面一段加后面
  12.             If I = N + 1 Then Str = Str & Str2      '如果超过一段长度时添加原有数据
  13.             Str = Str & Arr(Int(Rnd * 100) Mod 25)  '串接干扰数据
  14.         Next I
  15.         With R
  16.             .Value = Str    '写入数据
  17.             .HorizontalAlignment = xlCenter '设置水平居中
  18.             If .Interior.ColorIndex = xlNone Then   '设置干扰字体颜色与底色一致
  19.                 Col = 2
  20.             Else
  21.                 Col = .Interior.ColorIndex
  22.             End If
  23.             With .Characters(1, N).Font '设定一段字体大小及颜色
  24.                 .Size = 1
  25.                 .ColorIndex = Col
  26.             End With
  27.             With .Characters(N + Len(Str2) + 1, N).Font '设定二段字体大小及颜色
  28.                 .Size = 1
  29.                 .ColorIndex = Col
  30.             End With
  31.         End With
  32.     End If
  33. Next R
  34. Skip:
  35. End Sub

附示例文件
2.rar
2楼
xyf2210
收藏

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap