ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

守柔老师,我又有问题了,请教

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-10-12 09:41 | 显示全部楼层 |阅读模式

http://club.excelhome.net/viewthread.php?tid=64998

这个问题已基本上解决了,文本也能够顺利替换和更新

现在我又有个别的想法,就是在实现上述功能的前提下,把上述文本框里的内容添加到一张excel表中,以便查询,请问有何方法能完成?

QzTJUru9.rar (1.58 KB, 下载次数: 12)

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-12 10:21 | 显示全部楼层
我给你发了email了,收到否,请帮忙!先谢谢了

TA的精华主题

TA的得分主题

发表于 2004-10-12 10:58 | 显示全部楼层
以下是引用smart1078在2004-10-12 10:21:00的发言: 我给你发了email了,收到否,请帮忙!先谢谢了

EZjhzmdH.zip (29.42 KB, 下载次数: 14)

请注意两个文件应在同一个文件夹下。

录入完毕后,请打开“AddExcel.xls" ,检查一下。

以下代码,供参考:

Private Sub CommandButton1_Click() Dim i As Control, StrText As String, n As Integer, DefPath As String, C As String Dim xlObj As Excel.Application, xlWb As Excel.Workbook On Error Resume Next If Me.TextBox1 = "" Then Exit Sub Application.ScreenUpdating = False DefPath = ActiveDocument.Path 'È¡µÃµ±Ç°»î¶¯Îļþ·¾¶ If Tasks.Exists("Microsoft Excel") = True Then '¼ì²é²¢½¨Á¢EXCEL³ÌÐò Set xlObj = GetObject(, "Excel.Application") Else Set xlObj = CreateObject("Excel.Application") End If Set xlWb = xlObj.Workbooks.Open(DefPath & "\AddExcel.xls") '´ò¿ª¸ÃÖ¸¶¨¹¤×÷±¡ C = xlWb.Sheets(1).[a65536].End(xlUp).Row + 1 For Each i In Me.Controls If i.Name Like "TextBox*" = True Then n = n + 1 StrText = i.Text xlWb.Sheets(1).Cells(C, n) = StrText If StrText <> "" Then ActiveDocument.Fields(n).Code.Text = " Quote """ & StrText & """" i.Text = "" Else ActiveDocument.Fields(n).Code.Text = "" End If End If Next xlWb.Close True xlObj.Quit Set xlObj = Nothing Application.ScreenUpdating = True Me.TextBox1.SetFocus End Sub

Private Sub CommandButton2_Click() Unload Me End Sub

有问题请及时沟通。

TA的精华主题

TA的得分主题

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

对了,用这句的时候ActiveDocument.Fields(n).Code.Text = " Quote """ & StrText & """" 是不是要预先在word文档里设定空白的域啊?如果不是的话,word中的插入点怎么确定呢?

TA的精华主题

TA的得分主题

发表于 2004-10-13 06:25 | 显示全部楼层

受楼主之邀,重新设计了一段代码,时间有限请楼主测试多提意见。

代码供参考:

Private Sub CommandButton1_Click() Dim i As Byte, Tb As String, Lb As String, Fd As FileDialog, R As Long Set Fd = Application.FileDialog(msoFileDialogSaveAs) If Fd.Show = -1 Then Fd.Execute Else Me.Hide: Exit Sub R = Int(1000 * Rnd()) + 500 With ActiveDocument .BuiltInDocumentProperties(1) = R .Password = R .Save Application.ScreenUpdating = False For i = 1 To 21 Tb = Me.Controls("TextBox" & i).Text Lb = Me.Controls("Label" & i).Caption .Content.Find.Execute findtext:="Insert" & Lb, _ Replacewith:=Tb, Replace:=wdReplaceAll Next End With Application.ScreenUpdating = True End Sub Private Sub CommandButton2_Click() Unload Me If ActiveDocument.Saved = True Then Exit Sub If MsgBox("È·ÈÏÒª»Ö¸´Âð?", vbYesNo + vbCritical + vbDefaultButton2) = vbYes Then: _ ActiveDocument.Undo 50 ActiveDocument.UndoClear End Sub

OWUWW26z.zip (12.8 KB, 下载次数: 12)
[此贴子已经被作者于2004-10-13 7:22:13编辑过]

oH1kyTNQ.rar

15.44 KB, 下载次数: 9

守柔老师,我又有问题了,请教

SpE3F2Xw.rar

15.44 KB, 下载次数: 8

守柔老师,我又有问题了,请教

1dixBFnB.rar

15.45 KB, 下载次数: 7

守柔老师,我又有问题了,请教

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-13 08:17 | 显示全部楼层

谢谢酒痴兄的代码,这两天的学习真是受益匪浅阿。

If ActiveDocument.Saved = True Then Exit Sub If MsgBox("È·ÈÏÒª»Ö¸´Âð?", vbYesNo + vbCritical + vbDefaultButton2) = vbYes Then: _ ActiveDocument.Undo 50 ActiveDocument.UndoClear 这段代码怎么解释阿?

TA的精华主题

TA的得分主题

发表于 2004-10-13 08:44 | 显示全部楼层
也就是如果有个误操作,并进行了替换,则在取消(关闭窗体的取消命令,注意不是窗体的CLOSE命令,可加入),则可以恢复原样,然后清空恢复步骤。当然,其前提是文档发生了改变(SAVED)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-10-13 09:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2004-10-14 09:10 | 显示全部楼层

这个过程重新修订了一下,请楼主注意:

Private Sub CommandButton1_Click() Dim i As Byte, Tb As String, Lb As String, Fd As FileDialog, R As Long Set Fd = Application.FileDialog(msoFileDialogSaveAs) If Fd.Show = -1 Then Fd.Execute Else Me.Hide: Exit Sub Randomize R = Int(1000 * Rnd() + 500) With ActiveDocument .BuiltInDocumentProperties(1) = R .Password = R .Save Application.ScreenUpdating = False For i = 1 To 21 Tb = Me.Controls("TextBox" & i).Text Lb = Me.Controls("Label" & i).Caption Debug.Print Tb & Lb .Content.Find.Execute findtext:="Insert" & Lb, _ Replacewith:=Tb, Replace:=wdReplaceAll Next End With Application.ScreenUpdating = True End Sub

TA的精华主题

TA的得分主题

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

收到,谢谢,有个小问题,如果变量要在其它form中使用,是不是要在sub外面dim呀?

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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