Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 学习学习vba

[已解决]vba代码 怎么随机取值 有关ASCII码的 ? 20楼有运算过程

[复制链接]
 楼主| 发表于 2015-1-14 11:40 | 显示全部楼层
因为 我是 直接 用 系统自带的 计算器 做 16进制 运算的...
手动计算太费时费事了
所以才有这个帖子
回复

使用道具 举报

 楼主| 发表于 2015-1-14 11:50 | 显示全部楼层
写的说明不好,不清楚,,请老师不要介意.
回复

使用道具 举报

发表于 2015-1-14 11:55 来自手机 | 显示全部楼层
到现在我还没明白,数据源 和 结果,分别是怎样的。

回复

使用道具 举报

发表于 2015-1-14 14:32 | 显示全部楼层
学习学习vba 发表于 2015-1-14 11:50
写的说明不好,不清楚,,请老师不要介意.

那你到底发这个帖子是要别人帮助呢,还是不要别人帮助?

…………
如果要别人帮助,把你的数据源、计算规则、计算规则再按我说的方法解释一遍。



回复

使用道具 举报

发表于 2015-1-14 14:39 | 显示全部楼层
首先看看进制转换:
b = Hex(123)  '把十进制的123转为16进制赋给变量b,实际b是个字串
c = WorksheetFunction.Hex2Dec(b) '把16进制的变量b转成十进制赋给变量C,实际C是个字串
d% = "&h" & b    '把16进制的变量b转成十进制赋给变量d,实际d是整数
b = Hex(Asc("A"))  '把"A"的16进制ASC值给变量b,实际b是个字串
当然还有其它杂七杂八的转换方式

其次,转换之后,再来看你的问题就简单了,凑数而已,这群子发有利器在坛子中,找来用就是了
回复

使用道具 举报

发表于 2015-1-14 14:42 | 显示全部楼层
A1为商,这里A1=19……这里的A1是=(19)【十进制数值】 还是 =[19] 【ASCII码值】还是={19}【16进制码值相当于10进制数的25】

除数为固定值C……这里你说是16进制的C
也就是说=(12)【十进制数值=12】 或 =[67]【ASCII码值】或 ={43}【C的ASCII码值67的16进制换算值】

回复

使用道具 举报

发表于 2015-1-14 14:56 | 显示全部楼层
楼主前面说了,他的所有数字都是16进制的。
好象16进制可以直接运算而无需转换,而ASC值得是10进制的,不太确定,这没去试过。

楼主这样描述问题是很成问题,让人云里雾里的。建议楼主重新做个附件,说清楚点。
回复

使用道具 举报

发表于 2015-1-14 17:11 | 显示全部楼层
上清宫主 发表于 2015-1-14 14:56
楼主前面说了,他的所有数字都是16进制的。
好象16进制可以直接运算而无需转换,而ASC值得是10进制的,不太 ...

进制相互转换,而同时使用相同数字字符来表达且没有注明进制……这个肯定是无法理解的。


看来楼主语言表达能力较弱,无法说明他想要做的每一个步骤。
回复

使用道具 举报

 楼主| 发表于 2015-1-14 20:20 | 显示全部楼层
各位老师 不好意思...是我表达有问题
回复

使用道具 举报

 楼主| 发表于 2015-1-14 20:41 | 显示全部楼层
本帖最后由 学习学习vba 于 2015-1-14 20:48 编辑

我是用 系统自带的计算器 做运算的..

运算步骤:

图1,先切换到程序员 模式----选择 十六进制..

因B1=48,我就 分别点了 4 和 8,,,要做MOD运算, 再次点了 MOD 按钮,直接点了 C,结果=0
实际上就是 48 mod C = 0

QQ截图20150114202018.jpg

0就作为余数,
代入公式求被除数:

  被除数 = 0 + C*19(a1)

在计算器里,我的操作步骤, 先分别点了1和9,然后点了 * 号,接着点了 C ,最后点 = 号,得到结果为12C,,实际上就是19 * C =12C
加上 余数0,那么得到的被除数为12C,
QQ截图20150114202613.jpg

B1的值,就是要求出这个被除数的值:12C

套用的公式:  被除数 = 余数 + C*19
这个余数是 B1与C做了mod运算后得来的,那么公式可以替换成:被除数 =(B1 mod C) + C*19
当然这个公式是在 16进制下做运算的////

同样的操作 就可以分别求得,C1,D1,E1,分别对应的 被除数:134,131,12C

B4=ABQX,
是因为A,B,Q,X的16进码分别为:
A=41 B=42
Q=51
X=58
16进制运算:41+42+51+58=12C

只要从0~9和26个大写字母,任何4个数的16进码的和等于12C就符合条件, 代码运算只保留/取一个符合的....



回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 23:54 , Processed in 0.389461 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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