Foxtable(狐表)用户栏目专家坐堂 → [求助]Excel模板新插入行如何保留样式?


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

主题:[求助]Excel模板新插入行如何保留样式?

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


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
[求助]Excel模板新插入行如何保留样式?  发帖心情 Post By:2017/8/28 15:41:00 [只看该作者]

Excel模板中有大量合并单元格。

用下面程序,如果表记录大于模板预留行数,将自动加入行。

现在在加行时,原模板合并单元格的样式就全部丢失了。复制出来的原来合并的全部拆分了。

希望新增行能够和原来的格式一致,怎么修改?谢谢!

 

 

 FileSys.CopyFile(wjm,File_Name,True)       
        try
            If FileIsOpened(File_Name)= False Then
                wb = App.WorkBooks.Open(File_Name)
            Else
                wb = App.WorkBooks(wjm)
            End If
            ws = Wb.WorkSheets("任务单")
            gdhs=3
            bhs= Tables("任务信息").Rows.Count
            cw=bhs-gdhs
              If cw>0 Then
                rg= Ws.Range("6:6") '以这个指定的单元格为基准
                             For i As Integer=1 To cw
                    Rg.Insert(MSExcel.XlDirection.xlDown)
                Next
            Else
                cw=0
            End If
            App.DisplayAlerts = False
            wb.saveas(File_name)
            App.DisplayAlerts = True
        catch ex As exception
            msgbox(ex.Message)
        finally
            App.quit
        End try
              Do
            If FileIsOpened(File_name)= False Then Exit Do
        Loop


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/28 15:44:00 [只看该作者]

插入一行,是这样处理的

 

Rg.EntireRow.Insert(MSExcel.XlInsertShiftDirection.xlShiftDown)'在基准单元格上面插入一行


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/28 15:46:00 [只看该作者]

 

你也可以用【复制】【粘贴】的方式,这样也可以复制样式。


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


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2017/8/28 17:09:00 [只看该作者]

具体语句怎么写?谢谢

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/28 17:48:00 [只看该作者]

以下是引用新福星在2017/8/28 17:09:00的发言:
具体语句怎么写?谢谢

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\test.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = ws.range("5:5")
rg.Copy
rg.EntireRow.Insert(MSExcel.XlInsertShiftDirection.xlShiftDown)'在基准单元格上面插入一行
ws.paste
rg.Copy
rg.EntireRow.Insert(MSExcel.XlInsertShiftDirection.xlShiftDown)'在基准单元格上面插入一行
ws.paste
app.visible = True


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


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2017/8/29 10:55:00 [只看该作者]

按上述方法改后,先期可以打印正确打印3-5张。

之后就出现下图告警了。怎么解?谢谢


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170829104910.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/29 11:45:00 [只看该作者]

 例子发上来测试。

 回到顶部