改造的代码如下,功能可以正常执行,但新建的sheet1没有被删除,是不是tempWs.Delete语句放的位置不对,请老师帮忙看看
Dim App As New MSExcel.Application
try
For Each file As String In FileSys.GetFiles(path)
If file.EndsWith(".xls") OrElse file.EndsWith(".xlsx") Then
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(file)
Dim tempWs = wb.WorkSheets.Add
For k As Integer = 1 To Wb.WorkSheets.Count
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(k)
Dim rg As MSExcel.Range
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
tempWs.Delete
Next
Wb.Save
App.Quit()
Dim txt1 As WinForm.TextBox = Forms("翻译器").Controls("TextBox3")
txt1.text = file & vbcrlf & txt1.text & vbcrlf
Application.DoEvents()
FileCount=FileCount+1
End If
Next