2014-05-20 1 views
0

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에서 보호 된 워크 시트의 데이터를 바꿀 수 없습니다.

내가 뭘 잘못하고있는가?

_xlsheetActive.Cells.Replace(What:=Chr(10), Replacement:="", LookAt:=2, SearchOrder:=1, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False) 

답변

2

혼자 해결책을 찾았습니다 :

+0

문자열에 줄 바꿈이 없음을 의미합니다. 당신이하는 일은 자동 단어 감싸기를 제거하는 것입니다. – pmartin

+0

오케이. 그러나 내가 Alt + Enter (Chr (10))를 사용하여 줄 바꿈을 만들고 위에 코드를 실행한다고 가정 해 봅시다. 더 이상 줄 바꿈이 없습니다. 그게 아니라면, 그 wraptext는 Chr (10)을 삭제합니다. Btw. 나를 대신하여 chr (10)을 대체 할 수 있습니다. Chr (10)이 Replacement-Value로 대체되었지만 여전히 랩이있었습니다. ":"Chr (10) – ruedi

0

기본적으로 Excel에서 필요는 일부 문자를 대체하기 위해 귀하의 경우, 전체 문자열의 교체를 진행하려고합니다

_xlsheetRelevant.Cells.WrapText = False 

대신

_xlsheetRelevant.Cells.Replace(What:=Chr(10), Replacement:="", LookAt:=2, SearchOrder:=1, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False) 
+0

안녕하세요 pmartin! 아직 작동하지 않습니다. 내 게시물을 편집하고 모든 코드를 제공했습니다. 표준 및 표준 버튼으로 작업해야합니다. 네가 나에게 어떤 힌트라도 줄 수 있다면 정말 대단 할거야. – ruedi