我想通過vb.net打開一個excel文件並刪除選定工作表的所有換行符。我試圖做的是:從vb.net刪除Excel工作表中的行分隔符
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel
Public Class MyExcel
Private _xlsheetRelevant As Excel.Worksheet
Private _xlApp As Excel.Application
Private _xlworkbook As Excel.Workbook
Public Shared _shxlworkbook As Excel.Workbook
Public Sub New()
Try
_xlApp = CType(GetObject(, "Excel.Application"), Excel.Application)
Catch e As Exception
_xlApp = CType(CreateObject("Excel.Application"), Excel.Application)
End Try
_xlApp.Visible = True
End Sub
Public Sub OpenFile(ByVal FilenameL As String)
_xlApp.Workbooks.Open(FilenameL, ReadOnly:=False)
_xlworkbook = DirectCast(_xlApp.ActiveWorkbook, Excel.Workbook)
_shxlworkbook = _xlworkbook
_xlApp.Calculation = XlCalculation.xlCalculationManual
End Sub
Public Sub RemoveLinebreaks()
_xlsheetRelevant = DirectCast(_xlworkbook.Worksheets("Tabelle1"), Excel.Worksheet)
_xlsheetRelevant.Cells.Replace(What:=Chr(10), Replacement:="", LookAt:=2, SearchOrder:=1, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False)
End Sub
End Class
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ExcelV As New MyExcel
ExcelV.OpenFile("C:\Users\xxx\Desktop\Mappe1.xlsx")
ExcelV.RemoveLinebreaks()
End Sub
End Class
我總是得到以下信息:
Microsoft Excel中找不到任何數據來代替。檢查您的搜索 格式和標準是否正確定義。如果您確定此工作簿中存在匹配數據,則可能位於受保護的工作表上。 Excel無法替換受保護的工作表上的數據。
任何想法,我做錯了什麼?
這意味着您的字符串中不存在換行符。你正在做的是去除自動換行。 – pmartin
哦,好的。但讓我們說,我用Alt + Enter(這是一個Chr(10))創建一個換行符,並且我運行上面的代碼,不再有換行符。不是那個意思,那個wraptext也刪除了Chr(10)。順便說一句。替換chr(10)對我來說都是有用的。只有什麼:= imputvalue貫穿是「」「&Chr(10)&」「」Chr(10)被Replacement-Value取代,但仍然有一個換行。 – ruedi