Foxtable(狐表)用户栏目专家坐堂 → word如何设置表格列宽和替换字符串


  共有1400人关注过本帖树形打印复制链接

主题:word如何设置表格列宽和替换字符串

帅哥哟,离线,有人找我吗?
lxhmax
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:637 积分:5704 威望:0 精华:0 注册:2012/8/2 19:04:00
word如何设置表格列宽和替换字符串  发帖心情 Post By:2024/9/2 16:39:00 [只看该作者]

    Dim doc = app.Documents.Open(fl)
    ' 在文档末尾插入一个 2 行 3 列 的表格
    Dim tbl = doc.Tables.Add(doc.Range(doc.Content.End), 2, 8)
    ' 填充表格单元格
    tbl.Cell(1, 1).Range.Text = "序号"
    tbl.Cell(1, 2).Range.Text = "区域"
    tbl.Cell(1, 8).Range.Text = "备注"
    ' 设置表格第一行的字体加粗
    tbl.Rows(1).Range.Font.Bold = True
    Dim i As Integer
    For i = 1 To tbl.Rows(1).Cells.Count
        tbl.Rows(1).Cells(i).Shading.BackgroundPatternColor = RGB(189, 214, 238) ' 浅灰色 (Light Gray)
    Next i

    ' 设置列宽及行高
    ' 替换指定字符串
    
    doc.save
    app.Visible = True
    app.quit
[此贴子已经被作者于2024/9/2 16:41:43编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110851 积分:564199 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/2 16:45:00 [只看该作者]

列宽:
tbl.Columns(2).Width = 100f

替换参考:
doc.Content.Find.Execute(FindText:="查找的文字", replacewith:="替换的文字", Replace:=2)

 回到顶部
帅哥哟,离线,有人找我吗?
lxhmax
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:637 积分:5704 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2024/9/2 16:55:00 [只看该作者]

老师,这个列宽的有问题,报错了未指定的错误 (异常来自 HRESULT:0x80004005 (E_FAIL))
还有行高怎么设置

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110851 积分:564199 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/2 17:34:00 [只看该作者]

我测试没有问题

Dim app As New MSWord.Application
Try
    Dim doc = app.Documents.add
    doc.Tables.Add(Range:=app.Selection.Range, NumRows:=3, NumColumns:= 3)
    With app.Selection.Tables(1)
        .Rows(1).Height = 100 '行高
        .Columns(2).Width = 50 
    End With
    app.Visible = True
Catch ex As exception
    msgbox(ex.message)
    app.Quit
Finally
    
End Try

 回到顶部
帅哥哟,离线,有人找我吗?
lxhmax
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:637 积分:5704 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2024/9/2 17:59:00 [只看该作者]


FileSys.CopyFile(mb, fl,True)
'ShowAppWindow("wps",5)
Dim app As New MSWord.Application
Try
    Dim doc = app.Documents.Open(fl)
    Dim tbl = doc.Tables.Add(Range:=app.Selection.Range, NumRows:=3, NumColumns:= 8)
    '设置边框样式
    ' 设置表格边框样式
    With tbl.Borders
        .OutsideLineStyle = wdLineStyleSingle ' 设置外边框为单线
        .OutsideLineWidth = wdLineWidth050pt ' 设置外边框宽度为 0.5 磅
        .OutsideColor = RGB(0, 0, 0) ' 设置外边框颜色为黑色        
        .InsideLineStyle = wdLineStyleSingle ' 设置内边框为单线
        .InsideLineWidth = wdLineWidth025pt ' 设置内边框宽度为 0.25 磅
        .InsideColor = RGB(0, 0, 0) ' 设置内边框颜色为黑色
    End With
    ' 设置表格第一行的字体加粗
    tbl.Rows(1).Range.Font.Bold = True
    Dim i As Integer
    For i = 1 To tbl.Rows(1).Cells.Count
        tbl.Rows(1).Cells(i).Shading.BackgroundPatternColor = RGB(189, 214, 238) ' 浅灰色 (Light Gray)
    Next i
    ' 填充表格单元格
    tbl.Columns(1).Width = 50 : tbl.Cell(1, 1).Range.Text = "序号"
    tbl.Columns(2).Width = 50 : tbl.Cell(1, 2).Range.Text = "区域"
    '替换指定字符串
    doc.Content.Find.Execute(FindText:="序号", replacewith:="替换的文字", Replace:=2)
    '打开文件
    app.Visible = True
    doc.save
Catch ex As exception
    Output.Show(ex.message)
    app.Quit
Finally
End Try
GC.Collect()
Output.Show(Date.Now & "结束执行")
'Return msg

图片点击可在新窗口打开查看

老师,标红的两个都会报错

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110851 积分:564199 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/9/2 19:33:00 [只看该作者]

帮助以外的东西学会百度:https://learn.microsoft.com/zh-cn/office/vba/api/word.wdlinestyle

.OutsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle

 回到顶部