2016-08-12 6 views
0

Ich möchte Daten in Excel-Zelle beginnend bei der zweiten Zelle für Spalten löschen: F, G, H, I, J, K, L, M bis zum Ende der Daten.Zellen löschen Daten in Excel mit VBA

Mein versucht Code, dies zu lösen, ist unten, aber ich glaube, es sollte zum Löschen aller Daten bessere Antwort sein, um Daten in diesen Spalten enden:

Private Sub DeleteData() 
    Dim x 
    Dim y 
    Dim LastRow 
    Set xlApp = CreateObject("Excel.Application") 
    Set xlBook = xlApp.Workbooks.Open("C:\Master.xls", 0, True) 

    ' ## Open both workbooks first: 
    Set x = xlApp.Workbooks.Open("C:\Master.xls") 

    ' Now, copy what you want from x: 
    xlApp.Sheets("Data").Range("K:K").Copy 
    Set y = xlApp.Workbooks.Open("C:\SuiteOne.xls") 

    ' Now, paste to y worksheet: 
    y.Sheets("SuiteOneCaseFour").Range("E:E").PasteSpecial 

    'AutoFit 
    y.Sheets("SuiteOneCaseFour").Range("E:E").Columns.AutoFit 

    'Clear fields 
    LastRow = y.Sheets("SuiteOneCaseFour").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
    y.Sheets("SuiteOneCaseFour").Range("F2:M" & LastRow).ClearContents 

    x.Save  
    x.Close 
    y.Save 
    y.Close 

End Sub 
DeleteData() 
+0

Warum öffnen Sie 'C: \ Master.xls' zweimal? – Brian

Antwort

0
Dim LastRow As Long 
LastRow = y.Sheets("SuiteOneCaseFour").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 

y.Sheets("SuiteOneCaseFour").Range("F2:M" & LastRow).ClearContents 
+0

danke für die Antwort - Ich bekomme Fehler: Erwartete ')' in der zweiten Zeile. – AzMar

+0

@AzMar Es funktionierte für mich mit 'Activesheet'. Ist 'y' variabel? Oder hast du versehentlich das ')' gelöscht? – Brian

+0

Ich nahm an, dass "y" auf Arbeitsmappe eingestellt ist und schrieb diese Zeile. Sie können diese Zeile nach Ihren Bedürfnissen ändern. Bitte fügen Sie Ihren vollständigen Code ein. –

0

versuchen Sie die folgenden geändert Code:

Option Explicit 

Private Sub DeleteData() 

Dim x As Workbook 
Dim y As Workbook 
Dim LastRow As Range 

Application.ScreenUpdating = False 

Set x = Workbooks.Open("C:\Master.xls") 

x.Sheets("Data").Range("K:K").Copy 
Set y = Workbooks.Open("C:\SuiteOne.xls") 

With y.Sheets("SuiteOneCaseFour") 
    .Range("E:E").PasteSpecial 
    .Range("E:E").Columns.AutoFit 
    Set LastRow = .Cells.Find(What:="*", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious) 
    If Not LastRow Is Nothing Then 
     .Range("F2:M" & LastRow.Row).ClearContents 
    End If 
End With 

x.Save 
x.Close 
y.Save 
y.Close 

Application.ScreenUpdating = True 

End Sub 
+0

Fehler erhalten: Erwartete ')' in dieser Zeile: LastRow = .Cells.Find ("*", SearchOrder: = xlByRows, SearchDirection: = xlPrevious) .Row – AzMar

+0

@AzMar Versuchen Sie es erneut. – Brian

+0

gleicher Fehler in der gleichen Zeile? – AzMar

Verwandte Themen