VBA:通过查找用户定义的值(日期)查找行号

时间:2016-11-11 18:36:21

标签: excel vba excel-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

1 个答案:

答案 0 :(得分: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

您在克隆表单的部分需要帮助吗?