我有个程序需要读取excel的数据,但是在读取合并的行或者列的时候,只能读取第一个位置的内容,其他位置的值都为空,应该怎么解决呢?我查了资料是只需要读取合并行的第一行,或者合并列的第一列,但是excel的数据很复杂,程序里不知道怎么判断哪个单元格是属于哪个合并的部分。请高手给出一个读取这样excel内容的程序吧。(事先不知道那些单元格是合并的,合并的有行合并的,有列合并的)

解决方案 »

  1.   

    试试宏录制。
    先录制,点击各个列(合并了的,没合并的),输入一个数。然后看它vba代码。
      

  2.   


    Private Sub Command1_Click()
       Dim xls As New Excel.Application
       Dim book As New Excel.Workbook
       Dim sheet As New Excel.Worksheet
       
       Set book = xls.Workbooks.Open("c:\book1.xls")
       Set sheet = book.Worksheets(1)
       For i = 1 To 3
           For j = 1 To 3
                If sheet.Cells(i, j).MergeArea.MergeCells Then
                   Debug.Print sheet.Cells(i, j).MergeArea.Address
                End If
           Next
       Next
       
    End Sub
      

  3.   

    Dim rng As Range  For Each rng In ActiveSheet.UsedRange
          If rng.MergeCells Then 
      Next
      

  4.   

    如上,先判断区域的MergeCells属性,然后利用.cells属性定位到第一个单元格