以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  合并单元格  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=148030)

--  作者:tld
--  发布时间:2020/3/29 20:14:00
--  合并单元格

老师好。如何判断sheet中某一个单元格是否合并单元格,如果是,合并的行数是多少?

 

Dim Book As New XLS.Book("e:\\123.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim i As Integer
For i= 1 To sheet.rows.count-1
  判断 sheet(i,1) 是否合并单元格

  如果是,合并了几行,合并了几列

next

 

谢谢老师!


--  作者:有点蓝
--  发布时间:2020/3/29 22:37: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