2017-02-21 55 views
1

我目前有我的代碼在特定的工作表中查找單元格中某列的某一列。如果它在單元格中找到該值,則它將該單元格用作子例程其餘部分的錨點位置。這是相關的代碼。Excel VBA - 使用範圍變量來動態設置一組單元格的範圍

With DailyWS 
    Set DailyTable = .Range("C7:Q21") 
    Set Week = .Range("F4") 
End With 'DailyWS 

Set rngY = BackupWS.Range("B1:B10000").Find(Replace(Week.Value, " Week", ""), lookat:=xlPart) 

If rngY Is Nothing Then 
    Set rngY = BackupWS.Range("B1").Offset(LastRow, 0) 
End If 

With BackupWS 
    Set BackupTable = rngY.Offset(0, 2) 
End With 'BackupWS 

我需要的信息在DailyTable範圍,並將其複製到BackupTable範圍。由於它目前已編碼,因此它只複製一個單元格,因爲rngY只返回一個單元格[對於子例程的其他部分,我仍然需要rngY作爲此單元格]。

所以我需要的是它複製DailyTablerngY單元開始。例如,如果rngY作爲C1返回,那麼我需要將BackupTable設置爲範圍C1:Q15,然後執行.Offset(LastRow, 0)

我不確定如何成功地操作它來做到這一點。如果您需要澄清,請詢問。

回答

2

從您的請求:

如果rngY返回爲C1,然後我需要設置BackupTable到範圍 C1:Q15然後執行.Offset(LASTROW,0)這一點。

變化:

If rngY Is Nothing Then 
    Set rngY = BackupWS.Range("B1").Offset(LastRow, 0) 
End If 

With BackupWS 
    Set BackupTable = rngY.Offset(0, 2) 
End With 'BackupWS 

到:

With BackupWS 
    Set rngY = .Range("B1:B10000").Find(Replace(Week.Value, " Week", ""), lookat:=xlPart) 

    If rngY Is Nothing Then Set rngY = .Range("B1").Offset(LastRow, 0) 

    Set BackupTable = .Range(rngY, .Range("Q15")).Offset(LastRow, 0) 
End With 'BackupWS 

,但你可能要更詳細信息添加到您的實際目標

+0

完美!我能夠根據您所做的更改進行調整,以使其按照我的想法正常工作。謝謝! – BetaOp9

+0

不客氣 – user3598756