ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 一句话中的空格有下划线

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-12-25 14:45 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有一句话,有字符的地方没有下划线,没字符的地方有10个空格。比如这句话:“学校班级姓名等级分”。

我想用VBA一次输出,怎么弄?谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-12-25 14:50 | 显示全部楼层

一句话中的空格有下划线

本帖最后由 dongdonggege 于 2023-12-25 14:54 编辑

有一句话,有字符的地方没有下划线,没字符的地方有10个空格。比如这句话:“学校班级姓名等级分”。

我想用VBA一次输出,怎么弄?谢谢。

校后面有10个空格,级后面有10个空格,名后面有后面有10个空格,分后面有10个空格。
微信图片_20231225143208.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-12-25 14:51 | 显示全部楼层
我的程序如下:

就是繁琐了。
  1. Sub 空格有下划线()
  2.     Dim s As String
  3.     s = "学校            "
  4.     s = s & "班级            "
  5.     s = s & "姓名            "
  6.     s = s & "等级分            "
  7.     Selection.TypeText Text:=s
  8.    
  9.     Selection.HomeKey Unit:=wdLine '光标移到到行首
  10.     Selection.MoveRight Unit:=wdCharacter, Count:=Len(s), Extend:=wdExtend '选择到行尾
  11.     Selection.Font.UnderlineColor = wdColorAutomatic
  12.     Selection.Font.Underline = wdUnderlineSingle
  13.    
  14.     Selection.HomeKey Unit:=wdLine '光标移到到行首
  15.     Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend '
  16.     Selection.Font.Underline = wdUnderlineNone
  17.    
  18.     Selection.MoveRight Unit:=wdCharacter, Count:=13 '光标移到到指定位置
  19.     Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend '
  20.     Selection.Font.Underline = wdUnderlineNone
  21.    
  22.     Selection.MoveRight Unit:=wdCharacter, Count:=13 '光标移到到指定位置
  23.     Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend '
  24.     Selection.Font.Underline = wdUnderlineNone
  25.    
  26.     Selection.MoveRight Unit:=wdCharacter, Count:=13 '光标移到到指定位置
  27.     Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend '
  28.     Selection.Font.Underline = wdUnderlineNone
  29. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2023-12-25 15:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-12-25 20:07 | 显示全部楼层
请参考。。。

Doc2.rar

16.85 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2023-12-25 20:26 | 显示全部楼层

用find方法简化了楼主的代码,在WPS中运行宏能准确完成要求,楼主可以试一下
image.png


Sub 空格有下划线()
    Dim s As String
    s = "学校            "
    s = s & "班级            "
    s = s & "姓名            "
    s = s & "等级分            "
    With Selection
        .TypeText Text:=s
        .HomeKey Unit:=wdLine '光标移到到行首
        .MoveRight Unit:=wdCharacter, Count:=Len(s), Extend:=wdExtend '选择到行尾
        With .Font
            .UnderlineColor = wdColorAutomatic
            .Underline = wdUnderlineSingle
        End With
        With .Find
            .Text = "[一-郎]" '想匹配所有汉字,但是忘记最后一个字怎么打了
            .MatchWildcards = True
            .Replacement.Font.Underline = wdUnderlineNone
            .Execute Replace:=wdReplaceAll
        End With
    End With
End Sub


TA的精华主题

TA的得分主题

 楼主| 发表于 2023-12-26 07:32 | 显示全部楼层
过客fppt 发表于 2023-12-25 20:26
用find方法简化了楼主的代码,在WPS中运行宏能准确完成要求,楼主可以试一下

.Text = "[一-龢]",匹配所有汉字。
谢谢帮忙。

TA的精华主题

TA的得分主题

发表于 2024-1-1 16:32 | 显示全部楼层
过客fppt 发表于 2023-12-25 20:26
用find方法简化了楼主的代码,在WPS中运行宏能准确完成要求,楼主可以试一下

其实匹配汉字不用记忆那个难写又难念的字, 用[一-龟]就可以了

TA的精华主题

TA的得分主题

发表于 2024-1-1 19:43 | 显示全部楼层
题目都看错了,我以为是简化这个呢
s = Replace("学校 班级 姓名 等级分", " ", "          ")
ss = Join(Split("学校 班级 姓名 等级分"), "          ")

TA的精华主题

TA的得分主题

发表于 2024-1-2 10:19 | 显示全部楼层
确实是,最后的字又难念又难打,所以我以前喜欢用:[一-郎] 匹配绝大部分的汉字
不过今天复习了一下,发现无论是[一-郎] 还是[一-龟] 又或者[一-龢] ,要说匹配所有汉字都是不严谨的,正确的应该是[一-﨩]

image.png
查找效果如下:
image.png image.png image.png

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

本版积分规则

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

GMT+8, 2024-12-26 03:36 , Processed in 0.046949 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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