vba replace函数_利用VBA代码计算非整除除法运算

f756e4857f1cb5c9a05ada218faab510.png

大家好,今日推出常用“积木”过程案例分享第307期,今日内容是利用字典,利用VBA计算除以7余数是5的数。提供给大家的这些内容是我多年经验的记录,来源于我多年的实践。大家在学习VBA的时候,可以把这些代码块作为一块块的积木对待,平时积累,用时拿来修正、组合。这就是我的“积木编程”的思想,这些讲解就是我推出的“积木”方案,希望大家加以利用。最近代码多是出自我的第三套教程”VBA数组与字典解决方案”。

435af83bdb91a5550541ecd2755392b5.png

Sub mynzsz_74()

Sheets("74").Select

Set mydic = CreateObject("Scripting.Dictionary")

For i = 1 To 100

mydic.Add i & IIf(i Mod 7 = 5, "@", ""), ""

Next

[a:a].ClearContents

[a1] = "除以7余5的数"

myarr = WorksheetFunction.Transpose(Filter(mydic.Keys, "@"))

[a2].Resize(UBound(myarr), 1) = myarr

[a:a].Replace "@", ""

Set mydic = Nothing

MsgBox "ok!"

End Sub

代码讲解:

1)上述代码,首先在1到100的数据内建立一个循环,在循环的过程中,对每个数进行计算,计算的时候用MOD,当符合我们要求的数据,我们在后面加上标识@,放入字典中。循环结束后提取字典键中含有标识@的数据,在回填数据的时候将标识去掉。

2) For i = 1 To 100

mydic.Add i & IIf(i Mod 7 = 5, "@", ""), "" '注意IIF的用法,类似于工作表函数的IF。符合条件的值做个标识

Next

上述代码实现了给字典的赋值,mydic.Add i & IIf(i Mod 7 = 5, "@", ""), ""

在代码中我给出了注释:注意IIF的用法,类似于工作表函数的IF。符合条件的值做个标识

IIf(i Mod 7 = 5, "@", ""),当i Mod 7 = 5成立时这个值为"@",否则为空。

3) '回填数据

myarr = WorksheetFunction.Transpose(Filter(mydic.Keys, "@"))

上述代码实现了数据的回填,回填的时候用Filter(mydic.Keys, "@")提取其中有"@"标识的数据。

4) '替换去掉标识

[a:a].Replace "@", ""

上述语句将数组中的"@"替换为""。

6b887e5d9489b6b98b29b21ba63c5393.png

分享成果,随喜正能量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值