2012-08-24 62 views
-2

我只需要刪除單元格7B:7G,同時單獨保留7A。我如何使用Excel VBA來做到這一點?刪除單元格行,但不是整行

下面是代碼我現在有:

Option Explicit 

Sub Import() 

    Dim lastrow As Long 
    Dim wsIMP As Worksheet 'Import 
    Dim wsTOT As Worksheet 'Total 
    Dim wsSHI As Worksheet 'Shipped 
    Dim wsEST As Worksheet 'Estimate 
    Dim wsISS As Worksheet 'Issued 
    Dim cel As Range 

    Set wsIMP = Sheets("Import") 
    Set wsTOT = Sheets("Total") 
    Set wsSHI = Sheets("Shipped") 
    Set wsEST = Sheets("Estimate") 
    Set wsISS = Sheets("Issued") 

    With wsIMP 

     wsIMP.Range("E6").Cut wsIMP.Range("E5") 
     wsIMP.Range("B7:G7").Delete (xlShiftUp) 

    End With 

End Sub 

回答

3

你需要做的是刪除向左或向上範圍B7:G7,轉移細胞(根據需要):

range("B7:G7").delete(xlShiftToLeft) 

range("B7:G7").delete(xlShiftUp) 
+0

運行時錯誤'1004':object_「工作表'的方法'Range'failed.Updated OP to show code。 –

+1

@MattRidge Ops,我的錯誤 - 問題在範圍描述中 - 它應該有數字前的字母我更新了我的答案 –

+0

完美的感謝 –

2

使用With時,不應在中間兩行提及wsIMP。將您的代碼更改爲:

With wsIMP 

    .Range("E6").Cut .Range("E5") 
    .Range("B7:G7").Delete (xlShiftUp) 

End With 

也會注意到第二範圍表示法。它是B7:G7不是7B:7G

+0

Oy ...閱讀障礙再次罷工...謝謝。(是的,我有誦讀困難,所以我可以說); –

+0

我其實是這樣做的:'Range(「B7:G7」)。刪除xlShiftUp',它完美的工作。謝謝你的幫助。 –

+1

如果你沒有放在。Range前面,那麼宏將使用activesheet而不是wsIMP。如果您打算在活動工作表以外的工作表中使用宏,可能很重要。 –

相關問題