Foxtable(狐表)用户栏目专家坐堂 → 如何在word增加的行中输入对应的内容


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

主题:如何在word增加的行中输入对应的内容

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


加好友 发短信
等级:三尾狐 帖子:626 积分:5590 威望:0 精华:0 注册:2012/8/2 19:04:00
如何在word增加的行中输入对应的内容  发帖心情 Post By:2023/9/6 14:46: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 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中增加的行中如何输入对应的内容,以上代码报错,麻烦看下要怎么写,谢谢啦


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


加好友 发短信
等级:超级版主 帖子:107034 积分:544401 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/6 14:59:00 [只看该作者]

参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=76027

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

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


加好友 发短信
等级:三尾狐 帖子:626 积分:5590 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2023/9/6 15:14:00 [只看该作者]

那个看过了,没看明白,可以指导下修改我上面的代码实现吗?

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


加好友 发短信
等级:超级版主 帖子:107034 积分:544401 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:626 积分:5590 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2023/9/6 15:27:00 [只看该作者]

老师,在word中有2个表格,这个内容可以指定增加到第二个表格中吗?第一行是标题,从第二行开始输入内容

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


加好友 发短信
等级:超级版主 帖子:107034 积分:544401 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:626 积分:5590 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2023/9/7 14:26:00 [只看该作者]

老师,第一行是标题,跳过第一行,从第二行开始输入内容要怎么写?

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


加好友 发短信
等级:超级版主 帖子:107034 积分:544401 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


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

谢谢老师,可以了

 回到顶部