Foxtable(狐表)用户栏目专家坐堂 → [求助]读取excel时,如何判断某一个单元格是合并的?


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

主题:[求助]读取excel时,如何判断某一个单元格是合并的?

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/26 19:58:00 [显示全部帖子]

比如:

Dim t As Table = Tables("表A")
Dim r1 As C1.Win.C1FlexGrid.CellRange = t.Grid.GetMergedRange(t.RowSel + 1, t.ColSel + 1)
If r1.IsSingleCell Then
    Output.Show("没合并")
Else
    Output.Show(r1.r1) '首行
    Output.Show(r1.r2) '末行
    Output.Show(r1.c1) '左列
    Output.Show(r1.c2) '右列
End If 


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/27 11:04:00 [显示全部帖子]

需要使用vbs判断:http://www.foxtable.com/webhelp/topics/2121.htm

  • Merge

    合并单元格。
    利用Merge方法,或将MergeCells属性设置为True,都可以合并单元格。如:

    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\Report.xls")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    Dim Rg As MSExcel.Range = Ws.Range("A1:D10")
    App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
    Rg.Merge  '合并指定区域的单元格
    'Rg.MergeCells = True '用这种方式也可以合并
    App.Visible = True
     
  • UnMerge

    取消合并单元格。
    利用UnMerge方法,或将MergeCells属性设置为False,可将已经合并的单元格重新分解为独立的单元格。
    如下面的代码就是先利用MergeArea属性判断某个单元格是否为合并单元格的一部分,然后再进行取消:

    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\Report.xls")
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    Dim Rg As MSExcel.Range = Ws.Range("A1")
    If Rg.MergeArea.Address = Rg.Address Then
        MessageBox.Show("该单元格区域并不是合并后的单元格! ")
    Else
        App.DisplayAlerts = False   '加上此行可禁止弹出合并前的提示
        Rg.UnMerge  '取消合并
        'Rg.MergeCells = False  '用这种方式也可以取消
    End If
    App.Visible = True

 回到顶部