ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4827|回复: 41

[求助] 修改原代码中的错误

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-30 01:09 | 显示全部楼层 |阅读模式
本帖最后由 13782671637 于 2018-6-30 01:11 编辑

老师们:请看截图:A列是用自定义函数代码JINZHI()写的公式,显示的计算结果和格式都很正确。 优化进制转换的代码.zip (21.07 KB, 下载次数: 17)
20180630005434.png

    可一旦在工作表任意行列里进行剪切、复制、粘贴等操作,那么所有使用JINZHI()函数公式的行列,就会出现#N/A错误,编写关闭、重新打开工作簿,在公式后面点击确定,才能再次显示正确结果。

    这是什么原因?求高手大神们修改有问题的地方。代码如下:

Function JINZHI(i%, Optional d As Variant, Optional e As Variant) As String
Dim temp, k%, j%
If IsMissing(d) Then d = 3
If IsMissing(e) Then e = 3
temp = "": k = i
For j = 1 To e
  temp = (k Mod d) & temp
  k = Int(k / d)
Next j
JINZHI = temp
Application.Volatile
End Function


TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-30 07:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
恳请老师们帮忙解决!

TA的精华主题

TA的得分主题

发表于 2018-6-30 08:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-6-30 09:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 YZC51 于 2018-6-30 09:40 编辑

请参考
Function JINZHI(k, Optional d = 3, Optional e = 3) As String
    Dim temp, j%
    'If IsMissing(e) Then e = 3
    d = d + 1
    If k + 1 > d ^ e Then INZHI = "": Exit Function
    For j = 1 To e
        temp = (k Mod d) & temp
        k = k \ d
    Next j
    JINZHI = temp
    Application.Volatile
End Function

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-6-30 09:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-6-30 12:43 | 显示全部楼层
十进制转任意进制
Function JINZHI(k, Optional d = 4, Optional e = 3) As String
    Dim temp, j,M
    d = d + 1
    If k + 1 > d ^ e Then INZHI = "": Exit Function
    For j = 1 To e
    M = (k Mod d)
        temp = IIf(M > 9, Chr(M + 55), M) & temp
        k = k \ d
    Next j
    JINZHI = temp
    Application.Volatile
End Function

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-30 12:51 | 显示全部楼层
本帖最后由 13782671637 于 2018-6-30 12:58 编辑

老师:您可以在5楼的附件里复制A5,在工作表的任意一处粘贴,JINZHI()计算出的所有结果仍然全部显示了#N/A错误。只有在A5的公式后面点击确定,才能显示结果,下拉后,A5:A260才又重新显示了正确的结果;而F24:F25还是#N/A啊。
   用了6楼的代码后只要有复制粘贴操作,也依然出现#N/A错误。

TA的精华主题

TA的得分主题

发表于 2018-6-30 13:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在我这一切正常,可能是版本问题,2007版本正常!
1.jpg.png

TA的精华主题

TA的得分主题

发表于 2018-6-30 13:05 | 显示全部楼层
试试这个
Function JINZHI(k, Optional d = 4, Optional e = 3) As String
    Dim temp, j%
    Application.Volatile
    'If IsMissing(e) Then e = 3
    On Error Resume Next
    d = d + 1
    If k + 1 > d ^ e Then INZHI = "": Exit Function
    For j = 1 To e
        M = (k Mod d)
        temp = IIf(M > 9, Chr(M + 55), M) & temp
        k = k \ d
    Next j
    JINZHI = temp
End Function

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-30 13:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
YZC51 发表于 2018-6-30 13:01
在我这一切正常,可能是版本问题,2007版本正常!

这是我用了6楼代码,随意复制粘贴公式结果到其它地方后的截图 20180630130423.png

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-1 16:50 , Processed in 0.027590 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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