欢迎您访问南京安优网络官方网站,本公司专注于:网站制作、小程序开发、网站推广。 24小时服务热线:400-8793-956
当前位置:保时捷娱乐城代理合作 > 资讯中心 > 安优观点
Sorry,你的问题我只能想到一个完美解决方案
来源:保时捷娱乐城代理合作 时间:2018-01-19 08:27:45

保时捷娱乐城代理合作 www.xk6hb.com.cn          最近有位小伙伴私聊我一个问题,我考虑了许久也没能想到第二个完美解决方案,问题是这样的,该小伙伴丢给我一个Excel文件,文件有两份工作表,我稍作简化处理了一下。

        第一张工作表截图如下:

        第二张工作表截图如下:

        仔细看上面两张截图,可以发现第一张工作表中的节点信息就是由多个申告号码组成。刚收到这样的表格,我以为申告号码只会出现在一个节点信息中。所以我就想到使用Vlookup的部分匹配来获取运维严障单号,我使用的公式为=IFERROR(VLOOKUP("*"&A2&"*",IF({1,0},Sheet3!$B1:$B$1500,Sheet3!$A1:$A$1500),2,0),""),该公式就不在介绍了,前期发表的多个图文教程都有介绍类似逆向查找的说明。
        就这样,我把公式发给了私聊我的小伙伴,万万没想到的是,上面的公式是有问题的。等我发现该错误的时候,是在使用VBA完美解决申告号码会出现在多个节点信息列中。VBA代码如下:
 
Sub sutTest()
    Dim i, iRow As Integer
    Dim strNum As String
    Dim sutArray
    '关闭屏幕刷新
    Application.ScreenUpdating = False
    '获取运维号和节点信息
    Worksheets("Sheet3").Select
    sutArray = Range([A2], [B2].End(xlDown))
    '循环处理申告号码
    Worksheets("Sheet4").Select
    Range([B2], [B65535]).ClearContents
    Range("A2").Select
    iRow = 1
    strNum = ""
    '循环模糊比对,能匹配到则放入运维严障单号列中
    Do While ActiveCell.Value <> ""
        For i = 1 To UBound(sutArray)
            If sutArray(i, 2) Like "*" & ActiveCell.Value & "*" Then
                strNum = strNum & sutArray(i, 1) & ","
            End If
        Next
        If strNum <> "" Then
            strNum = Left(strNum, Len(strNum) - 1)
        End If
        ActiveCell.Offset(0, 1).Value = strNum
        strNum = ""
        ActiveCell.Offset(1, 0).Select
    Loop
    Application.ScreenUpdating = True
End Sub
 
        上面的代码都加以注释了,也非常容易理解,就不在详细解释了。第二张工作表的申告号码共有一万六千多条,我刚开始使用函数来解决该问题的时候,Excel还有点卡顿。
        其实第二张工作表截图中的运维严障单号列就是通过VBA代码匹配并填写的,小伙伴可以亲自试试。接下来继续讲解上面介绍的问题,我在第二张工作表D列输入上面的公式,并下拉到一万多行,得出的结果如下图所示:

        不知道各位小伙伴通过上图能否看到问题的所在?就拿申告号码ADSLD2300660153为例,使用VBA能匹配得到YZ-ZH-20180110-00001,但使用Vlookup部分匹配却什么都没找到,正常来说,是不会出现这种问题的,Vlookup不能返回多个结果,但只要有符合条件的值,一定会返回的。那出现该问题的原因是什么呢?为了找到该问题,我尝试分解公式,从最简单的公式开始,把公式中的Sheet3!$B1:$B$15提取出来,放到空白单元格,按下F9,详细操作请见如下动态图:

        可以看到第一张工作表的B2单元格的值显示为了#VALUE!,到这里我就明白,为啥我给出去的公式是错误的了。为了搞明白该问题,我特地把第一张工作表的B2和B3单元格的值复制到新的工作表中,然后使用Len函数查看单元格值的长度,具体操作如下动态图所示:

        最终终于确定了,当单元格长度超过255后,在函数中都会返回#VALUE!, 为了确定是否是微软的Bug,我还特地把制作好的工作簿拷贝到安装了WPS 2016专业版的电脑上,尝试打开查看,结果惊呆了,详细如下如所示:

        发现WPS没有该问题,Vlookup函数可以正确显示结果,头一次发现了WPS软件的强大之处,国产软件V587(威武霸气)。至于微软Office为什么显示错误,不要问我,因为我也不知道,有哪位小伙伴知道,请一定记得告诉我哦。
        
        好了,今天的介绍就到这了,大家如果在学习的VBA等过程中遇到任何问题,欢迎留言

本文地址://www.xk6hb.com.cn/news/1444.html
Tag: 完美 解决 方案
专业服务:保时捷娱乐城代理合作,保时捷娱乐城代理合作,保时捷娱乐城代理合作
联系电话:025-65016872
上一篇: 暴利赚钱莫过风水,塔罗牌占卜也还不错
下一篇: 多关键字排序,多少个排序条件都可以一起来
最新案例
泰杰赛
泰杰赛
苏派教育
苏派教育
全国大学生公共卫生大赛
全国大学生公共卫生大赛
南京德普筒仓建安工程有限公司
南京德普筒仓建安工程有限公司
中国非金属材料南京矿山工程有限公司
中国非金属材料南京矿山工程有限公司
你可能感兴趣
网站设计的平均寿命是多少?
拥有SSL安全网站的5个好处
如何准备网站设计咨询
如何创建网站站点地图
自定义网页设计或网站模板?
如何降低您的网站跳出率
什么是UX设计?我们的UX设计流程
5个为您的网站项目定价的隐藏成本
最后更新
5个WordPress的用户参与度量标准 如何计算您的商家的Google广告费用 更新网站设计时保持SEO排名的提示 你的新网站需要的八件事 三个C为更好的商业写作 邪恶的好语法:营销必须 为什么您的企业需要博客......现在 ABC:永远在转换
服务项目
保时捷娱乐城代理合作 营销型网站 微信营销 IDC网站 精品案例
  • 更聪明、更可靠、更低价 广汽传祺全新GS4上市 2019-04-24
  • 世界杯开赛以来最大一单:外卖小哥送300瓶啤酒驰援球迷Party 2019-04-24
  • 金正恩对中国进行访问 2019-04-24
  • 第527期:过年该送健康礼,几点秘籍教给你 2019-04-24
  • 《侏罗纪世界2》今日上映 获斯皮尔伯格亲赞 2019-04-23
  • 中船重工总经理孙波涉嫌严重违纪违法受中央纪委国家监委审查调查 2019-04-23
  • 特色小镇如何真“特” 2019-04-23
  • 就问你怕不怕!川大老师研发出无人机点名“神器” 2019-04-23
  • 胡锦涛总书记是咱强国论坛网友 2019-04-22
  • 2014高考大片儿上演 铺红色地毯迎明日之星【5】 2019-04-22
  • 茶圣陆羽栽培过的茶树  苏州小众茶的“前世今生” 2019-04-22
  • 让海淀城市“名片”更闪亮 2019-04-21
  • 【理上网来·喜迎十九大】塞尔维亚驻华大使:中国的发展是其他国家望尘莫及的 2019-04-21
  • 引进人才关键在用好人才 2019-04-21
  • 西部网(陕西新闻网)www.cnwest.com 2019-04-20
  • 113| 865| 609| 861| 587| 849| 873| 439| 377| 657|