我想通过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