以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何在word增加的行中输入对应的内容  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=188183)

--  作者:lxhmax
--  发布时间:2023/9/6 14:46:00
--  如何在word增加的行中输入对应的内容
Dim app As New MSWord.Application
try
    Dim doc = app.Documents.Open("D:\\Users\\Administrator\\Desktop\\123.docx")
    Dim dt As DataTable = DataTables("表A")
    
    
    For Each r As DataRow In dt.DataRows
        Dim newRow As Row = doc.Content.Tables(2).Rows.Add()
        newRow.Cells(1).Range.Text = r("第一列")
        newRow.Cells(2).Range.Text = r("第二列")
        newRow.Cells(3).Range.Text = r("第三列")
    Next Row
    
    app.Visible = True
catch ex As exception
    msgbox(ex.message)
    app.Quit
End try

老师,请问在word中增加的行中如何输入对应的内容,以上代码报错,麻烦看下要怎么写,谢谢啦


--  作者:有点蓝
--  发布时间:2023/9/6 14:59:00
--  
参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=76027

word的用法比较特殊,不是按单元格赋值的,需要模拟手工输入,比如app.Selection.TypeText

--  作者:lxhmax
--  发布时间:2023/9/6 15:14:00
--  
那个看过了,没看明白,可以指导下修改我上面的代码实现吗?
--  作者:有点蓝
--  发布时间:2023/9/6 15:17:00
--  
dim ss() as string = {"第一列",第二列"",...} 
   For Each dr As DataRow In dt.DataRows
        For Each s As string In ss
            app.Selection.TypeText(Text:=dr(s))
            app.Selection.MoveRight(Unit:=12)
        Next
    Next

--  作者:lxhmax
--  发布时间:2023/9/6 15:27:00
--  
老师,在word中有2个表格,这个内容可以指定增加到第二个表格中吗?第一行是标题,从第二行开始输入内容
--  作者:有点蓝
--  发布时间:2023/9/6 15:48:00
--  
选中第二个表格,然后在输入即可

doc.Tables(2).select
dim ss() as string = {"第一列",第二列"",...} 
   For Each dr As DataRow In dt.DataRows
[此贴子已经被作者于2023/9/6 15:48:01编辑过]

--  作者:lxhmax
--  发布时间:2023/9/7 14:26:00
--  
老师,第一行是标题,跳过第一行,从第二行开始输入内容要怎么写?
--  作者:有点蓝
--  发布时间:2023/9/7 14:38:00
--  
搞错了。可以按单元格赋值

Dim app As New MSWord.Application
try
    Dim doc = app.Documents.Open("D:\\Users\\Administrator\\Desktop\\123.docx")
    Dim dt As DataTable = DataTables("表A")
    
    
    For Each r As DataRow In dt.DataRows
        Dim newRow As object = doc.Content.Tables(2).Rows.Add()
        newRow.Cells(1).Range.Text = r("第一列")
        newRow.Cells(2).Range.Text = r("第二列")
        newRow.Cells(3).Range.Text = r("第三列")
    Next
    
    app.Visible = True
catch ex As exception
    msgbox(ex.message)
    app.Quit
End try

--  作者:lxhmax
--  发布时间:2023/9/7 14:55:00
--  
谢谢老师,可以了