2012-12-24 79 views
0

我想創建一個宏,將自動根據多個條件原始數據文件中刪除行的值刪除行。我已經能夠創建一個宏,它將刪除某些列有空值的行,但是我還需要刪除日期等於或大於另一個工作表中特定單元格中包含的日期的行。我一直都在互聯網上,但沒有找到解決這個特殊情況的解釋,或者是一個足以讓我弄清楚的解釋。我正在努力實現其他一些報告的自動化,這是我需要能夠完成其中幾項報告的最後一部分。這是我正在嘗試使用的代碼。Excel VBA中如何根據小區的不同工作表

Sub Deletedatesbeyondreportmonth() 

Application.ScreenUpdating = False 

With ActiveSheet 

    .AutoFilterMode = False 

    .Columns("E").AutoFilter Field:=1, Criteria1:=">= sheets("Sheet2").Range("C1")" 

    .AutoFilter.Range.Offset(1, 0).EntireRow.Delete 

    .AutoFilterMode = False 

End With 

End Sub 

如果我更換包含在指定單元格的宏工作,但我需要它能夠與實際值的標準sheets("Sheet2").Range("C1")運行基於關閉包含在該單元格的值。我玩過一些語法變體,並得到了不同的錯誤信息,但一直沒有弄清楚。如果我運行這個作爲是,它突出了字Sheet2中的標準線,並說:

編譯錯誤預期:聲明

回答

0

結束它可能是嵌套雙引號。嘗試使用雙 - 雙引號,如:

.Columns("E").AutoFilter Field:=1, Criteria1:=">= sheets(""Sheet2"").Range(""C1"")" 

示例here

0

當你用引號將VBA邏輯封裝起來時,你實際上對字符串進行了硬編碼,因此它將在過濾器中使用文本Sheets("Sheet2").Range("C1")而不是評估範圍值。您需要使用以下內容:

.Columns("E").AutoFilter Field:=1, Criteria1:=">=" & Sheets("Sheet2").Range("C1") 
+0

非常感謝Rob和Phillip!我已經能夠得到這個工作,我有一個小的後續問題......在我想使用的單元格值位於不同的工作簿的情況下,正確的語法是什麼?使用上面的例子中,我嘗試使用'工作簿(「摘要2012.xslm」)。表(「總結通過模式」),範圍(「Q2」)。Value'但它給我一個錯誤 – BigUglyDataScientist

+0

工作簿(「摘要(「按模式彙總」)。範圍(「Q2」)。值 – InContext

+0

@ user1925693:確保對有用答案投票並通過單擊複選標記接受實際答案。 –

相關問題