以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  word如何设置表格列宽和替换字符串  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193295)

--  作者:lxhmax
--  发布时间:2024/9/2 16:39:00
--  word如何设置表格列宽和替换字符串
    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编辑过]

--  作者:有点蓝
--  发布时间:2024/9/2 16:45:00
--  
列宽:
tbl.Columns(2).Width = 100f

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

--  作者:lxhmax
--  发布时间:2024/9/2 16:55:00
--  
老师,这个列宽的有问题,报错了未指定的错误 (异常来自 HRESULT:0x80004005 (E_FAIL))
还有行高怎么设置
--  作者:有点蓝
--  发布时间: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
--  发布时间: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

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

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

--  作者:有点蓝
--  发布时间:2024/9/2 19:33:00
--  
帮助以外的东西学会百度:https://learn.microsoft.com/zh-cn/office/vba/api/word.wdlinestyle

.OutsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle