2013-05-18 58 views
1

其實我必須找到一個名爲「account」的列,我必須刪除在該列中輸入的數據。 假設列名「Account」在單元格「B9」中,並且值已輸入到「B30」(它是可變的),那麼我必須將數據從「B10」刪除到「B30」。而且,如果我還有一個名稱爲「account」的專欄,那麼我也必須爲該專欄做同樣的事情。如何清除重複命名的列?

我編碼爲一列。我想寫它爲多個列。

這裏是我的編碼,

Private Sub CommandButton1_Click() 
    Dim xlapp As Excel.Application 
    Dim wb As Workbook 
    Dim FindRow As Range 
    Dim ad As String 
    Dim AcCell As String 

    Dim de As String 
    Dim lad As String 

    Dim col As Integer 
    Dim rw As Integer 
    Dim r As Integer 
    Dim rw2 As Integer 
    Dim myrange As Range 

    On Error GoTo ErrHandler: 

    MsgBox "Please browse for the document" 
    Set xlapp = CreateObject("Excel.Application") 

    filestr1 = Application.GetOpenFilename() 
    Workbooks.Open Filename:=filestr1 , Notify:=False 

    With xlapp  
     Set rng1 = ActiveSheet.UsedRange.Find("Account", , xlValues, xlWhole) 
     col = rng1.Column 
     'MsgBox col' 
     rw = rng1.Row 
     'MsgBox rw' 
     r = rw + 1 
     'MsgBox r' 
     ad = rng1.Address 
     'MsgBox ad' 
     ActiveSheet.Range(ad).Activate 
     ActiveCell.Offset(1, 0).Activate 
     rw2 = ActiveCell.Row 

     de = ActiveCell.Address 
     'MsgBox de' 

     ActiveSheet.Cells(Rows.Count, col).End(xlUp).Activate 

     lad = ActiveCell.Address 
     'MsgBox lad' 

     Set myrange = ActiveSheet.Range(de & ":" & lad) 
     myrange.Select 
     Selection.ClearContents 

     On Error GoTo ErrHandler: 

     filestr4 = Application.GetSaveAsFilename("RemovedAccNo") 
     ActiveWorkbook.SaveAs (filestr4) 
     On Error GoTo ErrHandler:  
    End With 
    Exit Sub 

    ErrHandler: 
    MsgBox ("User Cancelled.") 

End Sub 

回答

2

您可以用FindNext Method

這種方法 「繼續將其與Find方法開始搜索」

同樣做到這一點,嘗試不要使用SelectActivate。有了大量的數據,這對性能來說是非常糟糕的。

最後,你可能你Find後檢查rng1內容,以避免這一行範圍錯誤:

If Not rng1 Is Nothing Then 
+0

嗨阿德里安, 感謝烏爾快速回復 – Bharathi

+0

@Bharathi,歡迎您。想想接受我的答案爲其他人誰可能有這個問題:) –