2013-09-29 70 views
0
Dim iRow As Long 
    Dim CopyRange As String 

    iRow = (ActiveCell.Row) 
    Let CopyRange = "M" & iRow & ":" & "T" & iRow 

    Range(CopyRange).ClearContents 

我有此代碼的可變柱和我需要基於我的蓋片的變量聲明copyRange是(「T」 & iRow)的第二部分。聲明基於覆蓋片

列M到X代表12個月, 因此,無論何時將封面換爲Septemper,例如輸入工作表將值更改爲9,所以當我使用選擇方法時,它會選擇當前月份,即列U這個案例。

什麼,我需要做的是,當我更改封面,柱M(月)列T(8月),在這種情況下,以清除所有內容,但當前月份。

我一直在思考的是這樣的:

Sheets("Inputs").Range("H3") = C 
    Let CopyRange = "M" & iRow 
    let iCopyRange = C-1 & iRow 

    Cells (CopyRange, iCopyRange).ClearContents 

其有點奇怪!

回答

0

有訪問範圍(和列)不同的方式。對於您所追求的功能,不要依賴字母聽起來更好。你可以這樣做:

Dim startCol As Long: startCol = 13 'Col M 
Dim curMonth As Long: curMonth = 8 'August 
Dim endCol As Long: endCol = startCol + curMonth - 1 

Range(Columns(startCol), Columns(endCol)).ClearContents 

這個代碼利用特定的月份數字格式,並且清除所有前幾個月的內容,包括輸入之一。請注意,如果您始終使用同一張工作表,則無需添加Sheets("Inputs").位。如果要更改工作表中,它可能是更好的將其添加,以避免出現問題:

Sheets("Inputs").Range(Sheets("Inputs").Columns(startCol), Sheets("Inputs").Columns(endCol)).ClearContents 

UPDATE:

如果你不感興趣,刪除整個列,但只是某些行(用於例如,只需iRow);你應該依靠Cells

Range(Cells(iRow, startCol), Cells(iRow, endCol)).ClearContents 
+0

仍然第二部分(當前月-1)是不是基於我的封面變量? (「H3」) –

+0

我看到了,非常感謝 –

+0

@FadelNaeem我的意思是curMonth =你想要的值:) – varocarbas