Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1756|回复: 6

EXCEL,写数据到WORD中排除二个项目

[复制链接]
发表于 2019-12-9 22:25 | 显示全部楼层 |阅读模式
EXCEL,写数据到WORD中排除二个项目
请老师们帮帮忙,谢谢老师们了!
1.jpg
EXCEL,写数据到WORD中排除二个项目.rar (54.33 KB, 下载次数: 4)
发表于 2019-12-10 12:22 | 显示全部楼层
word 现在用的人少,就是打打字,没多少人用它来做统计,所以关于word的 vba 代码肯定多数人都不在行;
要把Excel数据弄到word里面,要是我来做,复制粘贴,稍微手工再改下就成了。
word的表格与excel表格本质上是很不一样的,为了兼顾外观和美观,要在word里面完全达到excel里的效果,要用“插入excel对象”来实现,反过来也是一样,要在excel完全体现与word一样的排版效果,也要“插入word对象”来实现,这事office的互操作性。不仅是这两个,常用的ppt也是这么操作的;
关于如何在word插入excel对象,在菜单-插入-快捷菜单“对象”,选microsoft excel工作表,excel里插入word的方法也是类似的

本质上,我的观点是复制粘贴就完事了,别搞代码,因为很少有人会写关于word的代码;
回复

使用道具 举报

 楼主| 发表于 2019-12-10 13:58 | 显示全部楼层
hfwufanhf2006 发表于 2019-12-10 12:22
word 现在用的人少,就是打打字,没多少人用它来做统计,所以关于word的 vba 代码肯定多数人都不在行;
要 ...

谢谢了老师!!!
回复

使用道具 举报

发表于 2019-12-18 20:41 | 显示全部楼层
改成这样就好:
                '*************************************************************************
                If Trim(Cells(Target.Row, "E")) <> "" Then
                    renArr = Split(Cells(Target.Row, "E"), vbLf)
                    For hs = 0 To UBound(renArr)
                                 
                    
                    
                        re = Split(renArr(hs), ",")
                       
                       If InStr(re(0), "妻子") > 0 Or InStr(re(0), "丈夫") > 0 Then GoTo n         '现在是只写入妻子、丈夫二个项目到WORD中
                           
                                                               '想改成,除妻子、丈夫二个项目以外,其它项目都写到WORD中(即不写入这二个项目)
                        g = g + 1
                        .Tables(2).Cell(g + 4, 2).Range.Text = re(0)
                        .Tables(2).Cell(g + 4, 3).Range.Text = re(1)
                        .Tables(2).Cell(g + 4, 4).Range.Text = Format(re(2), "yyyy.mm")
                        .Tables(2).Cell(g + 4, 5).Range.Text = re(3)
                        .Tables(2).Cell(g + 4, 6).Range.Text = re(4)
                       
n:                 Next hs
                     
                     g = 0
                    
                    
                End If
                '*************************************************************************
回复

使用道具 举报

 楼主| 发表于 2019-12-19 09:19 | 显示全部楼层
logo28 发表于 2019-12-18 20:41
改成这样就好:
                '******************************************************************** ...

老师你好,再麻烦你下
我修改成这样不行呢

                '*************************************************************************
                If Trim(Cells(Target.Row, "E")) <> "" Then
                    renArr = Split(Cells(Target.Row, "E"), vbLf)
                    For i = 0 To UBound(renArr)
                        If InStr(renArr(i), seltxt(0)) Or InStr(renArr(i), seltxt(1)) Then GoTo 跳转
                            re = Split(renArr(i), ",")
                            i = 0
                            .Tables(2).Cell(5 + i, 2).Range.Text = re(0)
                            .Tables(2).Cell(5 + i, 3).Range.Text = re(1)
                            .Tables(2).Cell(5 + i, 4).Range.Text = Format(re(2), "yyyy.mm")
                            .Tables(2).Cell(5 + i, 5).Range.Text = re(3)
                            .Tables(2).Cell(5 + i, 6).Range.Text = re(4)
                            Exit For
                       ''End If
跳转:                   Next i  '当符合上面IF判断的条件时,就跳转至此,退出i
                End If
                '*************************************************************************

回复

使用道具 举报

 楼主| 发表于 2019-12-19 20:04 | 显示全部楼层
logo28 发表于 2019-12-18 20:41
改成这样就好:
                '******************************************************************** ...

老师你好,空了,帮我看下,5楼那个修改成那样,不行,是什么问题哈,谢谢了老师了!
回复

使用道具 举报

发表于 2019-12-19 23:13 | 显示全部楼层
你对照四楼的代码好好看一下,把不一样的地方改一致了才行
关于goto 后的跳转,这个是正确的

评分

参与人数 1学分 +2 收起 理由
yjwdjfqb + 2 谢谢老师了!

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 09:33 , Processed in 0.327591 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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