2016-11-11 64 views
0

我正在嘗試使用VBA查找與我的工作表中某個用戶定義的日期對應的行值,以便我能夠編輯該行上的所有數據。VBA:通過查找用戶定義的值(日期)查找行號

由於一些背景:

我有幾個時間序列數據集,所有有重疊的,中間有相當一部分不同的開始和結束日期。我想使用用戶定義的日期參數來繪製這些圖表,但是,由於開始日期不統一,圖表不可能動態重新分配。

我曾經希望使用宏來克隆一張紙上的數據,覆蓋與用戶定義的開始日期對應的值行,然後根據百分比更改數字計算返回值(我已經有了一個不同的值片)。

如果我可以動態地選擇與日期範圍的UD開始日期相對應的行,那麼我可以用一個替換它,並且所有的計算都會有效地重新分配。

任何和所有的反饋將是偉大的!

編輯

盧卡斯,

我有兩個問題;首先,當我保護牀單時(不是無法克服的),我不熟練地拼湊在一起不起作用;其次,它不工作:)。這是我的工作:

Sub Rebase() 

Dim UDStartVal 
Dim UDStartLoc As Range 
Dim UDRow As Integer 

' 
' Rebase Macro 
' A macro to rebase the chart to the user defined start date. 
' 

' 
    Sheets("Cumulative Monthly Returns").Select 
    Cells.Select 
    Selection.Copy 
    Sheets("Chart Numbers").Select 
    Range("A1").Select 
    ActiveSheet.Paste 

' Lookup to change the value of the cells corresponding to the user defined start date to 0, effectivley rebasing the portfolo. 

    Worksheets("Cumulative Period Returns").Activate 
    UDStartVal = Cells(4, 2).Value 

    Set UDStartLoc = Range("A:A").SpecialCells(xlCellTypeVisible).Find(UDStartVal) 
    Set UDRow = UDStartLoc.Row 


Stop 


End Sub 

回答

0

下面是一些代碼,我用它來查找基於報價數量上得到使出不斷重新過濾片的項的行。

Private Sub FindQuote(partNum as String) 
Dim quoteRow as Range 
Set quoteRow = Range("A:A").SpecialCells(xlCellTypeVisible).Find(partNum) 

然後當我想要做的事,使用該行的範圍我用quoteRow.Row

If Not quoteRow Is Nothing Then 
    quoteNum = Cells(quoteRow.Row, "P").Value 
    Cells(quoteRow.Row, "Q").Value = "Found" 
Else 
    MsgBox "No quote was found" 
End If 

End Sub 

你需要,你克隆你的表的部分幫助嗎?

+0

Lucas, 非常感謝您的回覆。克隆我認爲我很好。我欺騙並記錄了這部分內容。 只爲我一般的博學;我需要.SpecialCells(xlCellTypeVisible)部分嗎? – CMWells

+0

Lucas, 我已經編輯了上述內容。 – CMWells