excel表格录入数据问题

查看 23|回复 3
作者:zsz1204   
经常要从word表格的指定单元格内复制数据到excel表格内。但是经常会复制错,请问各位大神有没有什么方法可以让excel自动录入word表格的内容。
word表格和excel表格形式如下附件
https://wwvn.lanzoul.com/i2hTI30kd9wd

表格, 数据

haagyp   

这个要求有点高
a2523188267   

有类假的邮件合并的工具从word到excel,但那个拆分的最好要规范些有规则点的
A12688   

1、VBA宏自动录入
Sub ImportWordTableToExcel()
    Dim wdApp As Object, wdDoc As Object
    Dim xlSheet As Worksheet
    Dim wordPath As String
    Dim wordTable As Object
    Dim projectInfo As String, projInfoParts() As String
   
    Set xlSheet = ThisWorkbook.Sheets("Sheet1")
    wordPath = "C:\你的路径\现场问题处理记录表 20250708.docx" ' 修改为实际路径
   
    ' 启动Word
    On Error Resume Next
    Set wdApp = GetObject(, "Word.Application")
    If wdApp Is Nothing Then Set wdApp = CreateObject("Word.Application")
    On Error GoTo 0
   
    wdApp.Visible = False
    Set wdDoc = wdApp.Documents.Open(wordPath)
   
    ' 获取Word表格数据
    Set wordTable = wdDoc.Tables(1)
    projectInfo = wordTable.Cell(11, 1).Range.Text  ' 项目信息单元格
   
    ' 拆分项目信息 (638-THX0206-01-2504-066-1 辽宁-SYSWPS 1000kW电源车)
    projInfoParts = Split(Trim(Replace(projectInfo, vbCr, "")), " ")
   
    ' 写入Excel(修改行号2为实际需要写入的行)
    With xlSheet
        ' 日期转换
        .Range("A2") = CDate(Replace(wordTable.Cell(1, 10).Range.Text, vbCr, ""))
        .Range("B2") = CDate(Replace(wordTable.Cell(1, 10).Range.Text, vbCr, ""))
        
        ' 项目信息拆分
        .Range("I2") = Mid(projInfoParts(0), 5)  ' 提取THX0206-01-2504-066-1
        .Range("J2") = projInfoParts(1)         ' 辽宁-SYSWPS
        .Range("K2") = projInfoParts(2)         ' 1000kW电源车
        
        ' 直接映射字段
        .Range("F2") = "工艺部"  ' 反馈部门(根据实际修改)
        .Range("M2") = Replace(wordTable.Cell(13, 1).Range.Text, vbCr, "") ' 问题描述
        .Range("N2") = Replace(wordTable.Cell(14, 1).Range.Text, "对不到", "对不上") ' 问题分析
        .Range("P2") = Replace(wordTable.Cell(18, 1).Range.Text, "(生产)", "(生产)") ' 解决措施
        .Range("Q2") = Replace(wordTable.Cell(15, 2).Range.Text, vbCr, "") ' 责任人员
    End With
   
    ' 清理资源
    wdDoc.Close False
    wdApp.Quit
    Set wdDoc = Nothing: Set wdApp = Nothing
   
    MsgBox "数据导入完成!"
End Sub
2、Power Query自动同步
1. 准备Word数据
◦ 将Word表格另存为现场问题处理记录表.txt
2. Excel操作
M
   
let
      源 = Text.FromBinary(File.Contents("C:\你的路径\现场问题处理记录表.txt"
)),
      拆分行 = Text.Split(源, "#(lf)"
),
      提取数据 = {
          // 反馈时间
          Text.BetweenDelimiters(拆分行{9}, "反馈时间", "|", 1
),
          // 项目信息
          Text.BetweenDelimiters(拆分行{10}, "项目信息", "|", 1
),
          // 问题描述
          Text.BetweenDelimiters(拆分行{11}, "问题描述", "|", 1
)
      },
      转表 = Table.FromColumns({提取数据}, {"反馈时间", "项目信息", "问题描述"
})
   in
      转表
关键步骤说明
1. 字段映射逻辑
Word字段
Excel列
处理规则
反馈时间
提出时间
直接转换日期格式
项目信息
项目号/客户名
按空格拆分字符串
问题描述
问题描述
移除换行符(vbCr)
解决措施
解决措施
转换括号格式
2. 特殊处理项
◦ 项目信息拆分:638-THX0206-01-2504-066-1 辽宁-SYSWPS 1000kW电源车
◦ 项目号:取第1部分并移除前缀(Mid(...,5))
◦ 客户名称:直接取第2部分
◦ 日期转换:Word中的2025.6.30 → Excel日期格式
◦ 符号统一:将Word中的全角括号()替换为半角()
您需要登录后才可以回帖 登录 | 立即注册

返回顶部