2017-10-31 17 views
0

VBAでは非常に新しいですが、自分のワークシートのヘッダーを別のシートのセルにリンクするコードを作成することができました。別のワークシートでセルが変更されたときにVBAを実行

コードは、アクティブなワークシート内のセルをクリックするたびに実行されます。他のワークシート内の特定のセルが変更されたときにのみ実行するコードが必要です。 "レポート"にヘッダがあります "入力"にはコードが参照するセル(B18)と、変更時にコードを実行するセル(B3)があります。

以下は私がすでに持っているコードです。

Private Sub Worksheet_selectionChange(ByVal Target As Range) 
ActiveSheet.PageSetup.RightHeader = "&28" & Format(Worksheets("Input").Range("b18").Text) 
End Sub 

何か助力が大変ありがとうございます!

答えて

0

2番目の段落についてはわかりません。私の理解は、入力ワークシート上のセルB3を監視し、それが変更されたら、ワークシートReportのPageSetupのRightHeaderを調整して、入力ワークシート上のセルB18の内容を反映させることです。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Application.Intersect(Target, Me.Range("B3")) Is Nothing Then 
     ThisWorkbook.Worksheets("Report").PageSetup.RightHeader = "&28" & Me.Range("B18").Text 
    End If 
End Sub 

を...そして、あなたのWorksheet_SelectionChangeプロシージャを削除します。それが正しいなら、あなたは入力ワークシートの後ろに以下のコードを置くことができます。

考え方は、入力ワークシートの変更を監視し、そのB3セルに関係するものを処理することです。

理想的には、上のセルに名前を付けると、入力ワークシート上の行と列を追加または削除してもコードは引き続き機能します。 Define and use names in formulasを参照してください。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Application.Intersect(Target, Me.Range("MyMonitoredValue")) Is Nothing Then 
     ThisWorkbook.Worksheets("Report").PageSetup.RightHeader = "&28" & Me.Range("MyPageSetupValue").Text 
    End If 
End Sub 

...そして、あなたは心配することなく、入力ワークシートのレイアウトを再編成することができます:あなたはMyPageSetupValueとしてMyMonitoredValueとしてInputs!B3Inputs!B18を定義した場合、上記のコードはなるだろう。

最後に、Excelのようにタブ名でワークシートを参照するのではなく、VBAエディタの[プロパティ]ウィンドウのワークシートの[名前]ボックスにあるCodeNameを使用して、プロジェクトエクスプローラを表示するにはCtrl + Rキーを押し、Microsoft Excelオブジェクトノードの下にあるワークシートをクリックしてから、F4キーを押して[プロパティ]ウィンドウを表示します)。この値は変更できます。私は通常それをshtReportに変更します。しかし、コードの別のバージョンは、次のようになります。入力ワークシートの両方の報告書ワークシートのタブ名の変更、および再編成を耐えることができる

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Application.Intersect(Target, Me.Range("MyMonitoredValue")) Is Nothing Then 
     shtReport.PageSetup.RightHeader = "&28" & Me.Range("MyPageSetupValue").Text 
    End If 
End Sub 

...。

+0

ありがとう、これがすべて解決しました! – user8863469

関連する問題