mchyzh 发表于 2007-3-9 13:47

赵老师《VBA技巧应用》书中的失误

<p>本书80页第50例</p><p>分离出文本:</p><p>for i=0 to len(fla)应改为for i=0 to 9 因为是对“0-9”数字进行循环替换</p><p>for i=0 to len(fla) : 当fla中出现的数字如(9)如果大于字段本身长度的话,此数字替换不掉</p><p>如 da98d 就无法把98替换掉.</p><p>分离出数字:</p><p>应把if val(mid(mr,i,1))&gt;0 then 改为if application.count(mid(mr,i,1))=1 then</p><p>因为当字段中含有数字"0"的时候,本书中的方法无法去掉.</p>

兰色幻想 发表于 2007-3-9 14:12

<p>多谢楼主指出,有问题请继续提出来,以便方面大家和学习和下次重新印时更正.</p><p>更正后的代码为:</p><p>Function FLA(XX)<br/>Dim I As Integer<br/>&nbsp; FLA = XX<br/>&nbsp;&nbsp; For I = 0 To <font color="#c01d1d">9<br/></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FLA = Replace(FLA, I, "")<br/>&nbsp;&nbsp; Next I<br/>End Function<br/>Function FLB(MR As Range)<br/>Dim I As Integer<br/>CC = ""<br/>&nbsp; For I = 1 To Len(MR)<br/>&nbsp;&nbsp;&nbsp; If Val(Mid(MR, I, 1)) &gt; 0 Or <font color="#be310e">Mid(MR, I, 1) = 0</font> Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CC = CC &amp; Mid(MR, I, 1)<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp; Next I<br/>&nbsp; FLB = CC<br/>End Function<br/></p><p><font color="#2222aa">这本书估计很快就会重印了,重印前作者都要查一遍,大家看仔细点,多帮我找些错出来</font></p>

sunyujie 发表于 2007-3-9 14:37

<p>看的仔细呀。</p>

mchyzh 发表于 2007-3-9 15:45

<p>兰版应该搞点奖励机制,如果找出错误多于几处或作者认为建议比较好的话下次赠送一本签名新版书 </p>

yiqun_zhao 发表于 2007-3-9 20:34

<font face="Verdana" color="#2222dd">兰色幻想居然和我都是赵家的,呵呵。</font>

ken3 发表于 2007-3-9 21:53

第49例,79页第9行在括号里,应该是多了个I不是F

笨小孩 发表于 2007-3-26 13:58

多谢兰版开辟这样交流平台

zjxia889 发表于 2007-3-28 10:14

华储网购的,VBA提高20日下订单买,还买收到书,书是看了一下,还没实践.

zjxia889 发表于 2007-4-2 16:38

<p>&nbsp;书到,学习中</p>

hhzjxss 发表于 2007-6-9 23:54

这书我还没看完~!
页: [1] 2
查看完整版本: 赵老师《VBA技巧应用》书中的失误