热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

excel中,将十进制数转化为IP显示

excel是从数据库中导出的,里面有一项IP项,在表中是以十进制显示的,比如3338666535,现在想让它以IP的形式显示,即3338666535转化为16进制是一个8位的16进制数字C700022
excel是从数据库中导出的,里面有一项IP项,在表中是以十进制显示的,比如3338666535,现在想让它以IP的形式显示,即3338666535转化为16进制是一个8位的16进制数字C7000227,这个数字每两位转化为10进制,就是192.0.2.39,这个过程如何自动实现?不懂代码,请给出详细脚本,多谢!

7 个解决方案

#1


楼主是要Excel的公式还是Excel的VBA代码呢,

由于3338666535这个实际上已经超过VBA中的Long数据类型的范围,处理起来稍微麻烦一点(也是可以处理的)

建议使用公式为好,楼主明确一下吧,可以给公式,也可以给VBA代码。

#2


楼上的,先谢过,无所谓公式还是VBA代码,只要能自动化实现就行,我要的是结果,过程无所谓。

#3


Public Function GetIpStr(dblNumber As Double) As String
    Dim strHex As String, strResult As String
    Dim i As Long
    
'    dblNumber = 3338666535#
    
    'Get Hex representation
    If dblNumber > (2 ^ 31 - 1) Then 'Deal with possible overflow for Long
        dblNumber = dblNumber - 2 ^ 32
    End If
    strHex = Hex(dblNumber)

    'Convert to decimal
    strResult = ""
    For i = 0 To 3
        strResult = strResult & CLng("&H" & Mid(strHex, i * 2 + 1, 2)) & "."
    Next i
    strResult = Left(strResult, Len(strResult) - 1)
    
    GetIpStr = strResult
End Function


另外,你举的例子数据有错。C7对应的十进制数是199。

#4


成功,多谢!楼上的很细心啊

#5


已经有楼上贴出代码了,我也贴一下吧,供参考。


Option Explicit

Sub test()
    MsgBox get_ip_string(3338666535#)
End Sub

Function get_ip_string(ip_dec As Currency) As String
    
    Dim ip_num As Currency

    Dim ip_a As Currency
    Dim ip_b As Currency
    Dim ip_c As Currency
    Dim ip_d As Currency
    
    Dim ip_str As String

    ip_num = ip_dec

    ip_a = Int(ip_num / 16777216)
    
    ip_num = ip_num - ip_a * 16777216
    ip_b = Int(ip_num / 65536)
    
    ip_num = ip_num - ip_b * 65536
    ip_c = Int(ip_num / 256)
    
    ip_num = ip_num - ip_c * 256
    ip_d = ip_num
    
    ip_str = Trim(Str(ip_a)) + "." + Trim(Str(ip_b)) + "." + Trim(Str(ip_c)) + "." + Trim(Str(ip_d))
    
    get_ip_string = ip_str

End Function

#6


Public Function GetIpStr(dblNumber As Double) As String
    Dim strHex As String, strResult As String
    Dim i As Long
    
'    dblNumber = 3338666535#
    
    'Get Hex representation
    If dblNumber > (2 ^ 31 - 1) Then 'Deal with possible overflow for Long
        dblNumber = dblNumber - 2 ^ 32
    End If
    strHex = Hex(dblNumber)

    'Convert to decimal
    strResult = ""
    For i = 0 To 3
        strResult = strResult & CLng("&H" & Mid(strHex, i * 2 + 1, 2)) & "."
    Next i
    strResult = Left(strResult, Len(strResult) - 1)
    
    GetIpStr = strResult
End Function

#7


多谢各位,程序员扎堆的地方,响应果然快啊

推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文整理了Java中java.lang.NoSuchMethodError.getMessage()方法的一些代码示例,展示了NoSuchMethodErr ... [详细]
  • 本文整理了Java中org.apache.solr.common.SolrDocument.setField()方法的一些代码示例,展示了SolrDocum ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
author-avatar
真正的爱情是什么2010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有