ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请高手帮助一下:对试题排版

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-10 23:12 来自手机 | 显示全部楼层
至于编号是否可以使用那一个旁注标注的形式。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-10 23:13 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
至于编题号,是否可以使用标注的形式

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-11 13:59 来自手机 | 显示全部楼层
没有宏代码,但有一个简便的步骤也可以。谢谢,等待高手答复。3楼却依然有一种方法,但是没有公布宏代码。短信息联系的时候说已经删除了那个代码。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-12 21:07 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-3-12 22:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
geryjun 发表于 2016-3-9 23:47
我也没有源代码,3楼的才有,但是他没有共享。现在只能等高手来提供帮助或者是等3楼的共享。

我让你上传的是原文件!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-12 22:36 | 显示全部楼层
hellohaoyu1985 发表于 2016-3-12 22:03
我让你上传的是原文件!

直接复制内容就可以了。不需要源文件的。

TA的精华主题

TA的得分主题

发表于 2016-3-13 00:17 | 显示全部楼层
文件不经过规整怎么进行处理,反正大概就是这个思路,也不难就是了。不用VBA也行!
没做错误处理,只做了一个死循环跳出,让你输入数字你别输入一个超过两位的正整数。2010通过。
就是下面那个文件。
  1. Sub Key()
  2. '----key1----
  3. Dim bTxt As String '被替换的
  4. Dim yTxt As String '替换为
  5. bTxt = "(〖答案〗*)^13(〖考点〗*)^13"
  6. yTxt = "\1\2"
  7. With Selection.Find
  8.     .ClearFormatting '清除替换的格式
  9.     .Replacement.ClearFormatting '清除替换为的格式
  10.     .Text = bTxt '被替换的文本
  11.     .Replacement.Text = yTxt '替换为的文本
  12.     .Forward = True '向前搜索
  13.     .MatchWildcards = True  '使用通配符
  14.     '.Style '样式对象
  15.     '.Replacement '要替换的对象
  16.     .Wrap = wdFindContinue '继续搜索
  17.     .Execute Replace:=wdReplaceAll
  18. End With

  19. '----key2----
  20. Selection.SetRange 0, 0
  21. Dim i%, i2%
  22. Dim n%
  23. Dim newText As String
  24. i = CLng(InputBox("请输入初始编号(没做错误处理!):"))
  25. i2 = i

  26. With Selection.Find
  27.     .ClearFormatting
  28.     .Replacement.ClearFormatting
  29.     .Forward = False
  30.     .MatchWildcards = True
  31.     .Text = "〖[0-9]{2}"
  32.     .Replacement.Text = ""
  33.     .Forward = True
  34.     Do While .Execute = True
  35.         n = n + 1
  36.         With Selection
  37.             newText = CStr(i) & ". "
  38.             .InsertBefore newText
  39.             .Next(wdParagraph, 2).Select '如果不选中,则选取不会移动
  40.                         .Collapse
  41.         End With
  42.         i = i + 1
  43.         If n = 10 Then Exit Do
  44.     Loop
  45. End With

  46. '----key3----
  47. Selection.SetRange 0, 0
  48. Dim sTest As String, sAnswer As String
  49. n = 0
  50. With Selection.Find
  51.     .ClearFormatting
  52.     .Replacement.ClearFormatting
  53.     .Forward = False
  54.     .MatchWildcards = True
  55.     .Text = "[0-9]{1,2}. 〖[0-9]{2}*〖答"
  56.     .Replacement.Text = ""
  57.     .Forward = True
  58.     Do While .Execute = True
  59.         n = n + 1
  60.         With Selection
  61.             sTest = sTest & Left(.Range.Text, Len(.Range.Text) - 2)
  62.             .Next wdParagraph, Count:=2
  63.             sAnswer = sAnswer & CStr(i2) & ". " & .Paragraphs(.Paragraphs.Count).Range.Text
  64.             i2 = i2 + 1
  65.         End With
  66.         If n = 10 Then Exit Do
  67.     Loop
  68. End With
  69. With Selection
  70.     .Start = ActiveDocument.Range.End
  71.     .InsertAfter vbCrLf & vbCrLf & "____问题____" & vbCrLf & sTest
  72.     .Start = ActiveDocument.Range.End
  73.     .InsertAfter vbCrLf & "____答案____" & vbCrLf & sAnswer
  74.     .SetRange 0, 0
  75. End With
  76. End Sub
复制代码

160309关于试题排版的例子.zip (13.98 KB, 下载次数: 50)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-13 08:17 来自手机 | 显示全部楼层
先谢谢了。看着里面的代码如果题号超过两位数,是否是直接在那里面修改    .Text = "〖[0-9]{2}"。不过题号,不超过两位数已经够了。再次感谢提供了一种思路,虽然题目有很多内容,但我每一次操作排版的时候内容都会控制页数,所以这个代码估计是够用的。

TA的精华主题

TA的得分主题

发表于 2016-3-13 14:59 | 显示全部楼层
编号的问题很好解决,借助替换即可:
  第1步:插入编号域
  在文档任意位置插入一个自动编号的域,切换到“插入”选项卡,在“文本”功能组依次选择“文档部件→域”,此时会打开“域”对话框,如图2所示,类别选择“编号”,域名选择“AutoNum”,在右侧的列表插入一种编号域,例如1,2,3,…。
  第2步:剪切编号域
  按下“Ctrl+X”组合键,将刚才已经插入的编号域剪切到剪贴板备用,当然也可以直接复制,但最后需要删除这个编号域,增加一道步骤。
  第3步:替换为自动编号
  打开“查找和替换”对话框,切换到高级替换模式,勾选“使用通配符”,查找“〖06*〗”,光标跳转到“替换为”框,单击左下角的“特殊格式”按钮,从弹出菜单选择“剪贴板内容”,继续手工输入“.”或“、”作为题号与题干之间的分隔符号。单击“全部替换”按钮,很快就可以看到效果。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-15 07:32 , Processed in 0.023297 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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