2016-11-11 16 views
0

VBAを使用してワークシートのユーザー定義日付に対応する行の値を検索しようとしています。その行のすべてのデータを編集します。VBA:ユーザー定義の値(日付)を検索して行番号を見つける

コンテキストのビットとして:

Iは、いくつかの時系列データを持っているすべての中間にオーバーラップの良い部分と異なる開始日と終了日を持っていることを設定します。私は、ユーザー定義の日付パラメーターを使用してこれらのグラフを作成したいが、開始日が不均一であるため、グラフを動的に再構築することは不可能である。

マクロを使用して1つのシートのデータをクローンし、ユーザー定義の開始日に対応する値の行を上書きしてから、パーセンテージの変更数値に基づいて戻り値を計算することを望んでいましたシート)。

日付範囲のUD開始日に対応する行を動的にo/wできれば、私はその日付範囲のUD開始日に対応する行を1行に置き換えることができ、すべての計算が効果的にリベースされます。

フィードバックは素晴らしいと思います。

EDIT

ルーカス、

私は2つの問題を抱えています。第1に、私がシートを保護するときに、一緒に詰め込まれていないものは(耐えられないほど)耐えられません。第二に、それは動作しません:)。ここに私の仕事は次のとおりです。

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

ここで私は頼って、絶えず再濾過ますシート上の引用番号に基づいてエントリの行を見つけるために使用するいくつかのコードです。私は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 

を使用し、その行の範囲を使用して何かをしたいとき

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

は、あなたがあなたのシートのクローンを作成する部分で助けを必要としましたか?

+0

ルーカス ありがとうございました。クローニングは大丈夫だと思います。私は騙されてその部分を記録した。 私の一般的な経験のためです。 .SpecialCells(xlCellTypeVisible)の部分が必要ですか? – CMWells

+0

Lucas、 私は上記を編集しました。 – CMWells

関連する問題