Microsoft技术社区联盟成员,全球领先的Excel门户,Office培训学习的最佳社区
加关注|繁體中文 切换到窄版

ExcelHome技术论坛

 找回密码
 免费注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

      高级搜索
魔方网表,Excel终结者,永久免费 Excel服务器学习和下载-做管理系统 Excel Home官方微博精品教程库
Excel不给力? 何不试试FoxTable! 2014年下半年Excel免费培训班计划 Excel协同平台+ERP标准框架+免费设计模板 免费下载Excel行业应用视频教程
Excel 2007表格基本操作秘技 免费学习Word 2007实战技巧视频 前所未见,90集Excel2010视频教程公开 最权威、易懂的VBA学习宝典
超级强悍, 无比易用的 Excel 工具集 你的Excel 2010函数公式学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统

[求助]从字符串中截取字符

查看: 2073|回复: 6| 收藏 :0
  • 77财富
  • 0鲜花
  • 0技术
    • 等级 2EH初级
    积分排行
    3000+
    帖子
    21
    精华
    0
    微积分
    0
    发表于 2008-9-23 20:58:00 |显示全部楼层
    分享到:

    [求助]从字符串中截取字符 [复制链接]

    请教各位高手:

    1. 在一 EXCEL 单元格中有一字符串:GUANGZHOU, GUANGDONG, CHINA

    这种地址的表达方式还有可能其它国家的地址,国名不定。

    请问,如何从中截取国家名?

    2. 另,还有另一个截取字符的考题:

    在一 EXCEL 单元格中有一字符串:

    SUITE 6D, F4.8, TIANJI BUILDING, CHEGONGMIAO, TIAN'AN INDUSTRIAL ZONE, FUTIAN DISTRICT, SHENZHEN, CHINA

    从左到右,最大截取30个字符,但不能将单词分开。也就是说,当截取的第30个字符处于一个单词的中间时,则此单词将整个被舍弃。

    请问,如何实现这个功能?

    多谢!!!

  • 1758财富
  • 0鲜花
  • 8技术
    • 等级 4EH高级
    积分排行
    820
    帖子
    771
    精华
    0
    微积分
    0

    优秀会员

    发表于 2008-9-23 21:18:00 |显示全部楼层

    1.  Right(源, Len(源)- InStrRev(源, ","))

    第二个怎么输出?就是原来的那串字符去掉长度大于30的?

    [此贴子已经被作者于2008-9-23 21:22:48编辑过]

    VBA
  • 77财富
  • 0鲜花
  • 0技术
    • 等级 2EH初级
    积分排行
    3000+
    帖子
    21
    精华
    0
    微积分
    0
    发表于 2008-9-23 22:19:00 |显示全部楼层

    回复:(angel020525)[求助]从字符串中截取字符

    SUITE 6D, F4.8, TIANJI  - 这应该是结果。

    因为第30个字符是单词“BUILDING" 中的字母”N ". 所以在最后输出时 BUILDING 应该被舍弃。

  • 77财富
  • 0鲜花
  • 0技术
    • 等级 2EH初级
    积分排行
    3000+
    帖子
    21
    精华
    0
    微积分
    0
    发表于 2008-9-23 22:35:00 |显示全部楼层

    另,InStrRev(源, ",") 是用来计算最后一个字符 ‘,’后的所剩下字符的长度吧。我复制公式后得不到相应的结果。

    请明示。谢谢!

  • 805财富
  • 0鲜花
  • 0技术
    • 等级 3EH中级
    积分排行
    2372
    帖子
    300
    精华
    0
    微积分
    0
    发表于 2008-9-23 23:06:00 |显示全部楼层

    InStrRev(源, ",") 计算“源”中最后一个","的位置,2楼是对的。

    2:

    n = InStrRev(Left(原字串, 31), ",")
    n = IIf(n = 0, 0, n - 1)
    MsgBox IIf(Len(原字串) <= 30, 原字串, Left(原字串, n))

  • 77财富
  • 0鲜花
  • 0技术
    • 等级 2EH初级
    积分排行
    3000+
    帖子
    21
    精华
    0
    微积分
    0
    发表于 2008-9-24 12:22:00 |显示全部楼层

    5楼的大侠:

    InStrRev(源, ","),这个涵数是内置的还是外置的?因为我发现我复制过去后不能用。

    2. 下面的是否是用 VBA 编写的?如何运行呢?

    n = InStrRev(Left(原字串, 31), ",")
    n = IIf(n = 0, 0, n - 1)
    MsgBox IIf(Len(原字串) <= 30, 原字串, Left(原字串, n))

    本人对于 EXCEL 的认识较浅。请明示.

  • 805财富
  • 0鲜花
  • 0技术
    • 等级 3EH中级
    积分排行
    2372
    帖子
    300
    精华
    0
    微积分
    0
    发表于 2008-9-24 12:51:00 |显示全部楼层
    QUOTE:
    以下是引用angel020525在2008-9-24 12:22:00的发言:

    5楼的大侠:

    InStrRev(源, ","),这个涵数是内置的还是外置的?因为我发现我复制过去后不能用。

    2. 下面的是否是用 VBA 编写的?如何运行呢?

    n = InStrRev(Left(原字串, 31), ",")
    n = IIf(n = 0, 0, n - 1)
    MsgBox IIf(Len(原字串) <= 30, 原字串, Left(原字串, n))

    本人对于 EXCEL 的认识较浅。请明示.

    这里是VBA版,以上是VBA代码。如果你需要Excel函数和公式来解决,可把问题发到函数与公式版。

    发表回复

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

    发帖时请遵守我国法律,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任。
    关闭

    最新热点

    关于发帖要求邮箱认证的说明
    - 注意:自2014/8/1起,未完成邮箱认证的会员将无法发帖!
    如何完成邮箱认证?请点击下方“查看”。

    查看 »

    回顶部