Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2245|回复: 2

[已解决]请教,用VBA设计这个公式要什么写

[复制链接]
发表于 2017-10-27 17:18 | 显示全部楼层 |阅读模式
B列最后三位数  乘   15  加上  D列  加上  8   ,然后再除以  16   ,最后把得到的余数放在   J列
特殊情况  如果   J列  等 于   0   那么变成 16

最佳答案
2017-10-27 17:26
本帖最后由 fjmxwrs 于 2017-10-27 17:42 编辑

用VBA设计这个公式,是想用自动定义函数吗代码如下
  1. Function myMod(R1 As Range, R2 As Range)
  2.     Dim s1, s2, i
  3.     s1 = Right(R1.Value, 3)
  4.     s2 = R2.Value
  5.     i = (s1 * 15 + s2 + 8) Mod 16
  6.     If i = 0 Then i = 16
  7.     myMod = i
  8. End Function
复制代码
然后,在J8输入公式
  1. =mymod(B7,D7)
复制代码
下拉完成

工作簿.zip

90.83 KB, 下载次数: 5

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-10-27 17:24 | 显示全部楼层
  1. =IF(MOD(RIGHT(B7,3)*15+D7+8,16),MOD(RIGHT(B7,3)*15+D7+8,16),16)
复制代码
回复

使用道具 举报

发表于 2017-10-27 17:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 fjmxwrs 于 2017-10-27 17:42 编辑

用VBA设计这个公式,是想用自动定义函数吗代码如下
  1. Function myMod(R1 As Range, R2 As Range)
  2.     Dim s1, s2, i
  3.     s1 = Right(R1.Value, 3)
  4.     s2 = R2.Value
  5.     i = (s1 * 15 + s2 + 8) Mod 16
  6.     If i = 0 Then i = 16
  7.     myMod = i
  8. End Function
复制代码
然后,在J8输入公式
  1. =mymod(B7,D7)
复制代码
下拉完成

评分

参与人数 1 +3 收起 理由
爷们679 + 3 谢谢版主。

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-4 10:29 , Processed in 0.500666 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表