以下是引用zjjpags在2005-6-10 10:00:00的发言:
请指点在word表中的职工编号中输入001,后面的姓名,姓别,出生年月,参工时间,自动填入excel中,001一行中的数据?
当输入002时,自动填入excel中,002一行的数据?
请多多指导
这个东东这样设计,一点也不合理.直接放在EXCEL中,使用VLOOKUP函数可以非常方便地做到.
反之,使用WORD的邮件合并,也可以将数据取出来.
按楼主的意思,我示意性做了一个,通过AUTOMATIO自动化方法,
以下代码供参考:
'* +++++++++++++++++++++++++++++
'* Created By I Love You_Word!@ExcelHome 2005-6-26 10:58:39
'仅测试于System: Windows NT Word: 10.0 Language: 2052
'^The Code CopyIn [ThisDocument-ThisDocument]^'
'* -----------------------------
Option Explicit
Sub ExampleToGetExcelData()
'运行此宏前,请先在VBE/工具/引用中,勾选对于"Microsoft Excel 10.0 Objecd Library"的引用
Dim MyExlApp As Excel.Application, MyExlWk As Excel.Workbook, MyXlsRange As Excel.Range
Dim MyXlsaCell As Excel.Range, xlsLastAddress As String, MyCell As Excel.Range
Dim MyWdTable As Table, aCell As Cell, KeyRange As Range, i As Integer, TF As Boolean
'定义一个表格对象,为本文档的第一个表格
Set MyWdTable = ThisDocument.Tables(1)
With MyWdTable
'定义一个WORD RANGE对象,为2,2单元格的内容部分
Set KeyRange = ThisDocument.Range(.Cell(2, 2).Range.Start, .Cell(2, 2).Range.End - 1)
'如果KEYRANGE对象文本为"",即没有录入编号则提示后退出程序
If KeyRange = "" Then
MsgBox "职工编号不得为空!", vbExclamation + vbOKCancel, "Warning"
Exit Sub
Else
'如果任务栏中已有EXCEL程序在运行
If Tasks.Exists("Microsoft Excel") = True Then
'则获取该EXCEL程序对象的引用
Set MyExlApp = GetObject(, "Excel.Application")
'加入一个识别对象
TF = True
Else
'反之,则创建对EXCEL程序的引用
Set MyExlApp = CreateObject("Excel.Application")
End If
'打开同一文件夹下的"DATABASE.XLS"工作薄
Set MyExlWk = MyExlApp.Workbooks.Open(ThisDocument.Path & "\DataBase.xls")
'取得A列的最后一个有数据单元格地址
xlsLastAddress = MyExlWk.Sheets(1).[A65536].End(xlUp).Address
'定义一个EXCEL RANGE对象
Set MyXlsRange = MyExlWk.Sheets(1).Range("A2:" & xlsLastAddress)
'定义一个EXCEL RANGE对象,为对指定区域的查找
Set MyCell = MyXlsRange.Find(KeyRange, LookIn:=xlValues)
'如果在指定区域中没有查找到指定的文本内容,则提示并退出程序运行
If MyCell Is Nothing Then
MsgBox "EXCEL没有找到该职工编号,请检查录入是否正确!", vbExclamation + vbOKCancel, "Warning"
.Cell(2, 2).Range.Select '选中该错误的单元格
GoTo GN '返回到指定行号
Else
For i = 2 To 4
'将数值赋值此指定单元格
.Cell(2, i * 2).Range = MyCell.Offset(, i - 1)
Next
.Cell(3, 8).Range = MyCell.Offset(, 4)
End If
End If
End With
GN:
MyExlWk.Close False '关闭并不保存EXCEL工作薄
'如果本来就不存在EXCEL程序,则关闭程序,并释放对象变量
If TF = False Then MyExlApp.Quit: Set MyExlApp = Nothing
End Sub
'----------------------
no5T0W5s.zip
(16.56 KB, 下载次数: 221)
|