2016-09-23 76 views
0

我有一個包含小計的Excel表,用於協調帳戶。小計在F & H列。當它們平衡時,我想刪除該小計組中的所有行。當單元格匹配時,VBA刪除小計組中的行

在這張表中,小計公式包括它正在計算的行(在這種情況下,我想從行104-109中刪除,因此可以從公式=SUBTOTAL(9,F104:F108)中獲得104,所以我一直試圖提取第一行然後將它傳遞到要被刪除的行的範圍

UPDATE:改變了腳本

簡化,但仍然得到類型不匹配在Rows(y & ":" & i).EntireRow.Delete

Sub QuickKill() 
Dim i 
Dim y 

For i = 1910 To 1 Step -1 
    If Range("F" & i).Value = Range("H" & i).Value Then 
     y = Mid(Range("F" & i).Formula, 14, CInt(Len(i))) 
     Rows(y & ":" & i).EntireRow.Delete 
    End If 
Next i 

End Sub

任何幫助/指導非常感謝!提前致謝。

Here's the layout of the excel sheet

+1

什麼是錯誤信息? – Brian

+0

它說運行時錯誤'5'。無效的過程調用或參數。如果我用2,3或4代替x,它表示類型不匹配。這肯定是這一行中的一個問題 –

+0

我認爲Range.DirectPrecedents方法應該得到公式中引用的範圍 – Slai

回答

1

MID的第三個參數不能爲負。檢查你沒有傳入x的負數。有多種類型轉換問題。首先從您的暗淡語句中刪除「只要」。我認爲在這一點上,你會發現問題是你正在進入Rows()是不是一個有效的地址行

+0

我確認。取決於腳本所在行的範圍是2-4。 –

+0

它是類型不匹配錯誤嗎?我更新了我的回答 –

+0

它說運行時錯誤'5'。無效的過程調用或參數。 如果我用2,3或4替換x,它可以工作。這絕對是這條線上的一個問題: –

相關問題