Dim App As New MSExcel.Application
try
Dim Wb As MSExcel.WorkBook = app.WorkBooks.open("d:\test.xls")
Dim rg As MSExcel.Range
Dim Ws = wb.WorkSheets(1)
Dim tempWs = wb.WorkSheets.Add
For Each rg In ws.UsedRange
If rg.MergeCells Then
Dim tempCell As MSExcel.Range
Dim width As Double = 0
Dim tempCol
For Each tempcol In rg.MergeArea.Columns
width = width + tempcol.ColumnWidth
Next
tempWs.Columns(1).WrapText = True
tempWs.Columns(1).ColumnWidth = width
tempWs.Columns(1).Font.Size = rg.Font.Size
tempWs.Cells(1, 1).Value = rg.Value
tempWs.Cells(1, 1).RowHeight = 0
tempWs.Cells(1, 1).EntireRow.Activate
tempWs.Cells(1, 1).EntireRow.AutoFit
If (rg.RowHeight < tempWs.Cells(1, 1).RowHeight) Then
Dim tempHeight As Double
Dim tempCount As Integer
tempHeight = tempWs.Cells(1, 1).RowHeight
tempCount = rg.MergeArea.Rows.Count
For Each addHeightRow As object In rg.MergeArea.Rows
If (addHeightRow.RowHeight < tempHeight / tempCount) Then
addHeightRow.RowHeight = tempHeight / tempCount
End If
tempHeight = tempHeight - addHeightRow.RowHeight
tempCount = tempCount - 1
Next
rg.WrapText = True
End If
End If
Next
app.DisplayAlerts = False
tempWs.Delete
app.visible = True
catch ex As exception
msgbox(ex.message)
app.quit
End try