2016-11-11 417 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