ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] excel如何删除word内表格的空行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-1-20 17:34 | 显示全部楼层 |阅读模式
刚刚接触VBA  研究出来个这个计划提报工具  但是 word表格的空行始终找不到代码,希望大神师傅们给个指点 在中间加段打码让这个功能实现一下  感激 计表计划报送系统.zip (370.61 KB, 下载次数: 7)    如何通过excel删除word表格内的空行.jpg 并非伸手党  也感谢 之前指点的师傅们
Sub 按钮1_Click()
    If [E1] = "" Then
    MsgBox "计划类型为空,请填好!"
    Exit Sub
    End If
    If [M1] = "" Then
    MsgBox "填报人为空,请填好!"
    Exit Sub
    End If
If MsgBox("真的已经核对好了吗?点是后数据会导出到文件根目录下,点否再给你一次检查的机会", vbYesNo, "提示信息") = vbNo Then
  Exit Sub
Else
'If MsgBox("是否确定要导出计划?这需要花费10秒左右", vbYesNo, "温馨提示") = vbYes Then
Dim moban As String, linshi As String
Dim wodapp As Word.Application
      StarTime = Timer '开始时间记录 '
Set wodapp = New Word.Application
moban = ThisWorkbook.Path & "\模板\表格模板.doc" '定义模板路径
'linshi = ThisWorkbook.Path & "\生成的计划表.doc"  '导出文件名
linshi = ThisWorkbook.Path & "\" & "计表计划" & "(" & Sheets("Sheet1").Cells(1, 5) & Sheets("Sheet1").Cells(1, 10) & ").doc"
FileCopy moban, linshi '将模版文件拷贝到一个临时文件
Dim filename As String                                       '定义文件路径
With wodapp
'filename = ThisWorkbook.Path & "\生成的计划表.doc"
filename = ThisWorkbook.Path & "\" & "计表计划" & "(" & Sheets("Sheet1").Cells(1, 5) & Sheets("Sheet1").Cells(1, 10) & ").doc"
'filename = ThisWorkbook.Path & "\" & "生成的计划表" & "(" & Sheets("Sheet1").Cells(1, 5) & ").doc"
wodapp.Application.Documents.Open filename:=filename           '打开文件
wodapp.Visible = False  'False/true
'                                        ↓输入到word的列数
' wodapp.ActiveDocument.Tables(1).Cell(2, 3).Range = Sheets("Sheet1").Cells(2, 3) '填写指定单元格表格数据
'                                   ↑输入到word的行数
For j = 4 To 20 '填写表格数据
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 1).Range = Sheets("Sheet1").Cells(j, 1)
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 2).Range = Sheets("Sheet1").Cells(j, 2)
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 3).Range = Sheets("Sheet1").Cells(j, 3)
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 4).Range = Sheets("Sheet1").Cells(j, 4)
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 5).Range = Sheets("Sheet1").Cells(j, 5)
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 6).Range = Sheets("Sheet1").Cells(j, 6)
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 7).Range = Sheets("Sheet1").Cells(j, 7)
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 8).Range = Sheets("Sheet1").Cells(j, 8)
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 9).Range = Sheets("Sheet1").Cells(j, 9)
           wodapp.ActiveDocument.Tables(1).Cell(j - 2, 10).Range = Sheets("Sheet1").Cells(j, 10)
          'wodapp.ActiveDocument.Tables(1).Cell(j + 2, 4).Range = Sheets("Sheet1").Cells(j + 2, 5)
Next j
           Str1 = "数据"
           Str2 = Sheets("Sheet1").Cells(1, 5)
           .Selection.HomeKey Unit:=wdStory '光标置于文件首
           If .Selection.Find.Execute(Str1) Then '查找到指定字符串
              .Selection.Font.Color = wdColorAutomatic '字符为自动颜色
              .Selection.Text = Str2 '替换字符串
           End If
           Str1 = "数据"
           Str2 = Sheets("Sheet1").Cells(1, 5)
           .Selection.HomeKey Unit:=wdStory '光标置于文件首
           If .Selection.Find.Execute(Str1) Then '查找到指定字符串
              .Selection.Font.Color = wdColorAutomatic '字符为自动颜色
              .Selection.Text = Str2 '替换字符串
           End If
            Str1 = "数据2"
           Str2 = Sheets("Sheet1").Cells(1, 13)
           .Selection.HomeKey Unit:=wdStory '光标置于文件首
           If .Selection.Find.Execute(Str1) Then '查找到指定字符串
              .Selection.Font.Color = wdColorAutomatic '字符为自动颜色
              .Selection.Text = Str2 '替换字符串
           End If
           Str1 = "数据3"
           Str2 = Sheets("Sheet1").Cells(1, 14)
           .Selection.HomeKey Unit:=wdStory '光标置于文件首
           If .Selection.Find.Execute(Str1) Then '查找到指定字符串
              .Selection.Font.Color = wdColorAutomatic '字符为自动颜色
              .Selection.Text = Str2 '替换字符串
           End If

'wodapp.PrintPreview = True '打印预览
wodapp.Documents.Save
wodapp.Quit
End With
'        [E1] = "": [M1] = ""
        EndTime = Timer '结束时间记录'
      MsgBox "供电车间计划批量导出数据已完成!文件在文件根目录下" & Chr(13) & Format(EndTime - StarTime, "程序运行时间约为:0.00秒"), 64, "提取结果" '提示所用时间'
      End If
End Sub


TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-20 23:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
哪位好心的师傅 帮帮忙呗

TA的精华主题

TA的得分主题

发表于 2020-1-21 09:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-1-21 10:41 | 显示全部楼层
本帖最后由 sirsunny 于 2020-1-21 10:43 编辑

你可以试试这样,word模板只设置一行,再根据实际填报的内容增加行数。ActiveDocument.Application.Selection.InsertRowsBelow

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-21 20:00 | 显示全部楼层
蓝桥玄霜 发表于 2020-1-21 09:37
附件中没有表格模板.docx 文档

计表计划报送系统.zip (364.43 KB, 下载次数: 8) 实在抱歉 是我的过失  已重新上传啦

TA的精华主题

TA的得分主题

发表于 2020-1-22 08:59 | 显示全部楼层
Application.ActiveDocument.Tables(1).Cell(1, 1).Select '光标定位表格第一行第一列
Selection.MoveDown Unit:=wdLine, Count:=2 '下移两行,定位到第三行
Selection.Cells.Delete ShiftCells:=wdDeleteCellsEntireRow '删除第三行

TA的精华主题

TA的得分主题

发表于 2020-1-22 09:38 | 显示全部楼层
填表的代码:
模板中保留20行,其余行删除。保留行数可以自行修改。
2020-1-22填表.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-23 17:44 | 显示全部楼层
蓝桥玄霜 发表于 2020-1-22 09:38
填表的代码:
模板中保留20行,其余行删除。保留行数可以自行修改。

大牛呀 厉害厉害 经常看您帮助坛友  实在是佩服

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-9 15:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
蓝桥玄霜 发表于 2020-1-22 09:38
填表的代码:
模板中保留20行,其余行删除。保留行数可以自行修改。

师傅,代码测试了 导出word里面有回车符 有没有办法帮忙优化下 实在不行我就只能在word里面录制删除回车符的宏
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-26 05:16 , Processed in 0.038924 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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