ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 将表册数据输出到一户一表。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-6 20:25 | 显示全部楼层
  1. Sub test()
  2.     Dim r%, i%
  3.     Dim arr, brr
  4.     Dim d As Object
  5.     Dim wordapp As Word.Application
  6.     Dim worddoc As Word.Document

  7.     Application.ScreenUpdating = False
  8.     Application.DisplayAlerts = False
  9.     Set d = CreateObject("scripting.dictionary")
  10.     With Worksheets("sheet1")
  11.         r = .Cells(.Rows.Count, 1).End(xlUp).Row
  12.         arr = .Range("a2:g" & r)
  13.         For i = 1 To UBound(arr)
  14.             If Not d.exists(arr(i, 2)) Then
  15.                 Set d(arr(i, 2)) = CreateObject("scripting.dictionary")
  16.             End If
  17.             d(arr(i, 2))(i) = Empty
  18.         Next
  19.     End With


  20.     Set wordapp = New Word.Application
  21.     wordapp.Visible = True

  22.     For Each aa In d.keys
  23.         wordname = ThisWorkbook.Path & "\承包书_" & aa & ".doc"
  24.         FileCopy ThisWorkbook.Path & "\承包书.doc", wordname
  25.         Set worddoc = wordapp.Documents.Open(Filename:=wordname)
  26.         worddoc.Select
  27.         With worddoc
  28.             With .Tables(1)
  29.                 For i = 2 To 4
  30.                     For j = 2 To 6
  31.                         .Cell(i, j).Range.Text = Empty
  32.                     Next
  33.                 Next
  34.                
  35.                 .Select
  36.                 wordapp.Selection.MoveUp wdLine, 1, wdMove
  37.                 wordapp.Selection.EndKey wdLine
  38.                 wordapp.Selection.TypeText aa
  39.                 m = 1
  40.                 For Each bb In d(aa).keys
  41.                    m = m + 1
  42.                    For j = 3 To 7
  43.                        .Cell(m, j - 1).Range.Text = arr(bb, j)
  44.                    Next
  45.                 Next
  46.             End With
  47.             .Close True
  48.         End With
  49.     Next
  50.     wordapp.Quit
  51.     Set wordapp = Nothing
  52.     Set worddoc = Nothing
  53.     Application.ScreenUpdating = True
  54.     MsgBox "一户一档数据生成完毕!"
  55.     End

  56. End Sub
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-3-6 20:26 | 显示全部楼层
详见附件。

承包书.rar

22.24 KB, 下载次数: 24

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-7 08:22 | 显示全部楼层

非常感谢你的解答,但点击表格按钮时,提示如下问题,请问如何解决,谢谢。
微信图片_20230307082005.png

TA的精华主题

TA的得分主题

发表于 2023-3-7 08:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
修改好了。

数据表.rar

22.42 KB, 下载次数: 10

TA的精华主题

TA的得分主题

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

大师,还是不行,麻烦再帮调试一下,非常感谢。
1678150110618.png

TA的精华主题

TA的得分主题

发表于 2023-3-7 08:50 | 显示全部楼层
修改好了。

数据表.rar

19.16 KB, 下载次数: 33

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-7 08:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-3-7 09:14 | 显示全部楼层
1、按Alt+F11进入Visual Basic窗口
2、按[工具]-[引用]
3、把窗口中前面显示“丢失"的对勾取掉。
QQ截图20230307091227.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-7 09:32 | 显示全部楼层
chxw68 发表于 2023-3-7 09:14
1、按Alt+F11进入Visual Basic窗口
2、按[工具]-[引用]
3、把窗口中前面显示“丢失"的对勾取掉。

非常您的多次回复,还是不行

1678152686271.png 1678152701391.png
image.png

TA的精华主题

TA的得分主题

发表于 2023-3-7 09:37 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zgyn 发表于 2023-3-7 09:32
非常您的多次回复,还是不行

那我也没办法了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 16:28 , Processed in 0.049689 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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