2017-10-17 11 views
0

私は、ボタンの探索(クリック)に基づいて、特定のセルを検索結果の値で更新する必要があるシナリオを持っています。 検索ボタンTopLeftCellプロパティとオフセット()メソッドは、値が新しい列が間に追加される可能性がある場合のオフセットの設定方法

With Sheets("Test").Shapes("btnSearch").TopLeftCell 

    .Offset(0, -4).Value = searchResult 

End With 

コピーされたセルに到達するために使用されるが、要件が存在することを、これらの細胞の間に後添加したすべての列がある場合その後、再び

を変更する必要がありますオフセットは、我々は我々が

の間で列を追加/削除してもオフセット法を心配する必要がないように、このケースを処理する方法はありますのでご注意くださいこれらのセルは、動的にインクリメントされるExcelのリスト/グリッドの一部です。

+0

を検索する必要があり、列は変更されません任意の行の見出しまたは識別子のいくつかの種類があるのだろうか?つまり、列番号自体は変更されますが、定義された見出しは常に行「n」になりますか? –

+0

はい、それは変更されません見出しがあります – user3428508

答えて

1

ただ、これをテストし、それが働いた:

With Sheets("Test") 

    Dim resCol As Long 
    'change myHeader to defined header and row number as needed 
    resCol = .Rows(1).Find("myHeader").Column 

    Dim resRow As Long 
    resRow = .Shapes("btnSearch").TopLeftCell.Row 

    .Cells(resRow, resCol).Value = searchResult 

End With 
+0

ありがとうScott。私のヘッダーは複数行になっており、1行に変更できないという問題が1つあります。 – user3428508

+0

@ user3428508 - このコードを調整することをお勧めします。もともとそれを述べていたなら、私はそれを行うためのコードを作成していたでしょう。私が提供したコンセプトは、データフォーマットに基づいて正しいヘッダー列を見つけるための調整を行っても機能します。 –

関連する問題