ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

如何用vba把excel表转换成word表,附件上传,守柔请帮忙

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-12-4 11:53 | 显示全部楼层 |阅读模式

如何用vba把excel表转换成word表,请高手给个例子。谢谢了,附件已上传

就是这样的两个一横一竖的表格 zLl6JVbW.rar (14.04 KB, 下载次数: 70)
[此贴子已经被作者于2006-12-5 11:39:57编辑过]

TA的精华主题

TA的得分主题

发表于 2006-12-5 06:30 | 显示全部楼层
QUOTE:
以下是引用wjtwjt127在2006-12-4 11:53:48的发言:

如何用vba把excel表转换成word表,请高手给个例子。谢谢了

请楼主给你例子,你想把EXCEL中的什么样的表,转换成WORD中什么样形式的表,只要两个附件就行了。

谢谢。

TA的精华主题

TA的得分主题

发表于 2006-12-5 11:55 | 显示全部楼层

你的WORD的结果呢?

可以使用复制粘贴吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-12-5 12:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

不用复制粘贴的给个例子,最好版式也是排好的

TA的精华主题

TA的得分主题

发表于 2006-12-6 06:46 | 显示全部楼层

以下代码供参考:

Option Explicit

Sub ExcelToWord()
'运行本代码前必须确认在EXCEL VBE中勾选对于"Microsoft Word 11.0(OFFICE版本) Object Library的引用
    Dim wdApp As Word.Application, wdDoc As Word.Document, wdRange As Word.Range
    Dim wdTable As Word.Table, byteCol As Byte, ColWidths As Variant
    Dim xlSheet As Excel.Worksheet, xlRange As Excel.Range, i As Excel.Range
    On Error Resume Next
    Set xlSheet = ActiveWorkbook.Worksheets("总概算")
    Set xlRange = xlSheet.Range("B3:H35")
    '取得对Word应用程序的引用
    Set wdApp = GetObject(, "Word.Application")
    '如果没有打开的Word,则创建
    If Err.Number <> 0 Then Set wdApp = CreateObject("Word.Application")
    wdApp.Visible = True '调试用,正式中写入False
    Set wdDoc = wdApp.Documents.Add '新建空白文档
    With wdDoc
        Set wdRange = .Range(0, 0)
        '创建一个指定行列数的表格
        Set wdTable = .Tables.Add(Range:=wdRange, numrows:=35, numcolumns:=7)
        With wdTable
        '为单元格赋值,可根据情况对EXCEL单元格中的数据进行取整或者小数点保留
            For Each i In xlRange
                .Cell(i.Row, i.Column - 1).Range.Text = i.Value
            Next
            ColWidths = Array(0.5, 7, 2, 2, 2, 2, 2) '预定义列宽
            For byteCol = 1 To 7 '设置列宽
                .Columns(byteCol).PreferredWidthType = wdPreferredWidthPoints
                .Columns(byteCol).PreferredWidth = CentimetersToPoints(ColWidths(byteCol - 1) * 1)
            Next
            .Rows.Alignment = wdAlignRowCenter '表格居中
            '单元格中部居中
            .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
            .Range.Cells.VerticalAlignment = wdCellAlignVerticalCenter
            '设置表格格式
            .Range.Font.Size = 11
            .Range.Font.Name = "仿宋_GB2312"
            '对第一行合并并录入文本设置格式
            With .Rows(1)
                .Cells.Merge
                .Range.Text = "总估算表"
                .Range.Font.Name = "黑体"
                .Range.Font.Size = 16
            End With
            '对第二行进行合并并录入文本设置格式
            With .Rows(2)
                .Cells(7).Merge .Cells(6)
                .Cells(6).Range.Text = "单元:万元"
                .Cells(2).Merge .Cells(1)
                .Cells(1).Range.Text = "表12-1-1"
                .Cells(2).Merge .Cells(4)
                .Range.Font.Size = 12
            End With
            '设置重复的标题行
            Set wdRange = .Range
            wdRange.SetRange wdRange.Start, .Rows(3).Range.End
            wdRange.Rows.HeadingFormat = True
            Set wdRange = .Range
            '设置表格边框线
            With wdRange
                .SetRange .Rows(3).Range.Start, .End
                With .Rows
                .Borders.OutsideLineStyle = wdLineStyleSingle
                .Borders.OutsideLineWidth = wdLineWidth050pt
                .Borders.InsideLineStyle = wdLineStyleSingle
                .Borders.InsideLineWidth = wdLineWidth050pt
                End With
            End With
        End With
    End With
    wdApp.Visible = True '恢复可见以加快程序运行
End Sub

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

本版积分规则

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

GMT+8, 2024-11-17 06:55 , Processed in 0.034180 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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