ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

请教守柔版主:不知这样的快速输入能否用VBA实现?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-1-13 14:23 | 显示全部楼层 |阅读模式

不知这样的快速输入能否用VBA实现?

1、启动样本文件中的模板文件后,点击启动窗口

2、在textbox1中输入代码001——004或其它(如诗歌的名称,根据样本文件中的内容定),点击确定后在“样本文件”中查找是否有textbox1中的相应字符,如果有则输入样本文件中相应字符冒号后的内容到“#”结束。如果没有则提示输入有误,并直接输入textbox1中的字符。

x0PmfmuQ.rar (9.87 KB, 下载次数: 18)
[此贴子已经被作者于2005-1-13 14:32:03编辑过]

c6FHNyOg.rar

9.86 KB, 下载次数: 8

不知这样的快速输入能否用VBA实现?

TA的精华主题

TA的得分主题

发表于 2005-1-13 14:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你要用的这个功能用Excel或Access来做不是要方便得多吗?为什么必须要用word来做呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-13 14:30 | 显示全部楼层
在文字处理方面用WORD较多,这样快速调用就方便多了……

TA的精华主题

TA的得分主题

发表于 2005-1-13 16:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

这个办法不是最好的办法。但根据楼主要求,我简易制作如下,请参:

'* +++++++++++++++++++++++++++++++++++++++

'* Created By I Love You_Word!@ExcelHome 2005-1-13 16:02:44

'仅测试于System: Windows NT Word: 10.0 Language: 2052

'^The Code CopyIn [用户窗体-UserForm1]^'

'* --------------------------------------------------------------------------

Dim MyDoc As Document Private Sub CommandButton1_Click() Dim strText As String, i As Paragraph, MyStr As String, TF As Boolean, N As Byte On Error Resume Next strText = Me.TextBox1 If strText <> "" Then TF = False '隐藏方式打开此同一模板同一路径下的指定文档 Set MyDoc = Documents.Open(FileName:=ThisDocument.AttachedTemplate.Path & "\样本文档.doc" _ , Visible:=False) For Each i In Documents(MyDoc).Paragraphs N = InStr(i.Range, strText) '提取字符位置 If N > 0 Then TF = True '赋一个值 MyStr = Documents(MyDoc).Range(i.Range.Start + N + Len(strText), i.Range.End - 2) ' MsgBox MyStr Selection.InsertAfter MyStr & vbCrLf Me.TextBox1.SetFocus End If Next If TF = False Then MsgBox "输入有误!", vbOKOnly + vbInformation Me.TextBox1 = "" '清空文本框 Me.TextBox1.SetFocus '设置焦点 End If End If End Sub '---------------------- Private Sub CommandButton2_Click() On Error Resume Next Unload Me Documents(MyDoc).Close False '关闭该文档 End Sub '---------------------- Private Sub UserForm_Activate() Me.CommandButton1.Default = True Me.TextBox1.SetFocus End Sub '----------------------

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-13 22:55 | 显示全部楼层

运行有误,好象不行,版主说这不是最好办法,能否提供一个更好办法,只是最好能落在WORD的VBA上。

运行中出现以下情况:

[此贴子已经被作者于2005-1-13 22:57:44编辑过]

请教守柔版主:不知这样的快速输入能否用VBA实现?

请教守柔版主:不知这样的快速输入能否用VBA实现?
EhOBp1Hl.jpg
SezPr44C.jpg

TA的精华主题

TA的得分主题

发表于 2005-1-14 05:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

TO hao123:

我不知道你又错在哪里了,这是我运行的结果图片,供参考:

可能的问题:你的写了诗词的文档与模板位置不一致或者是文件名不对,你自己可以修改一下,或者按照程序的要求,放在同一文件夹中才可以正常运行啊!

Set MyDoc = Documents.Open(FileName:=ThisDocument.AttachedTemplate.Path & "\样本文档.doc" _ , Visible:=False)

上述这句代码的意思就是打开的“样本文档”.doc是同你的“启动程序”.dot模板是在同一个文件夹中的,假设不是,当然会出错,然后运行的结果当然是"错误输入了"

1YpITboJ.rar (8.88 KB, 下载次数: 14)

请教守柔版主:不知这样的快速输入能否用VBA实现?

请教守柔版主:不知这样的快速输入能否用VBA实现?

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-14 10:51 | 显示全部楼层

我的运行情况录屏如下,请指正……

还是运行不了,不知为何?是不是版本问题我用的是WORD2000。我的运行情况录屏如下,请指正……

请教守柔版主:不知这样的快速输入能否用VBA实现?

请教守柔版主:不知这样的快速输入能否用VBA实现?

TA的精华主题

TA的得分主题

发表于 2005-1-14 11:08 | 显示全部楼层

我刚才请七叶一枝梅测试了一下,他通过的,没有问题。

这样,楼主先别急,可以F8调试一下,将代码中的ON ERROR RESUME NEXT一句加上注释,另外在OPEN方法中,将VISIBLE:=FALSE改为TRUE,逐语句调试一下,看一下哪儿出错了。

[em06][em06][em06]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-1-14 11:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

调试过程中,输入“002”其文本写在样本文件中……

调试过程中,输入“002”其文本写在样本文件中……
[此贴子已经被作者于2005-1-14 11:22:24编辑过]

调试过程中,输入“002”其文本写在样本文件中……

调试过程中,输入“002”其文本写在样本文件中……

TA的精华主题

TA的得分主题

发表于 2005-1-14 11:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我知道了,这是七兄刚发给我的短信:
2005-1-14 11:06:42七叶一枝梅给您发送的消息!
消息标题:测试问题+
守柔兄,可能确实有版本问题,在office2K下果然没有通过!

谢谢七兄。

请楼主将上述代码中的 Selection.InsertAfter MyStr & vbCrLf改为 Application.Windows(ThisDocument.Name).Selection.InsertAfter MyStr & vbCrLf再试一下。

另外,对于书签中的WITH Activedocument改上面插入一句MsgBox "LineCount=" & LineCount

再试一下!

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

本版积分规则

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

GMT+8, 2024-11-15 14:48 , Processed in 0.041623 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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