名前として'YTDInfo'!$J$2
を見て開始するVBAスクリプトがあります。次に、ブックの先頭から一致するシート名を検索し、'YTDInfo'!$J$2
のエントリと照合します。名前が見つかった場合は、そのシートの「金額」セルを調べ、その値を'YTDInfo'!$M$2
に持ち込みます。3番目のセルの値に基づいて2番目の動的セル(特定の行基準)に1つの静的セルの値をコピーします。
スクリプトは、次の一致するシートに移動します.100枚を超えて、その1人に行われたすべての支払いを追加します。合計合計値はセル'YTDInfo'!$M$2
に配置されます。
私はわずか100以上の名前のリストを持っており、このプロセスのコンポーネントを自動化したいと思います。
私は既に持っている:シート名のすべてが取り込ま
'YTDInfo'!A2
〜'YTDInfo'!A100
+を。
'YTDInfo'!B2
Marlettフォントで「a」(チェックマーク用)を使用しています。
'YTDInfo'!B2
= "a"(またはB3またはB4 ... = "a")の場合'YTDInfo'!$J$2
は、リストの次の名前(名前はそれぞれA3、A4またはA5に由来します)を入力します。
$J$2
には配列CSEの式があります。 'YTDInfo'!$J$2
が名前を入力すると、スクリプトを実行し、合計を作成して'YTDInfo'!$M$2
に配置します。
このマニュアルが好きなのは、どの名前にYTD情報があるのかを追跡でき、重複やスペルミスをシート内で追跡できるためです。
'YTDInfo'!$M$2
は私が'YTDInfo'!Fn
(nは、行番号の)細胞内に、しかしどこに対応する特定の行に値を配置する必要が移入されたときここで私は今、自動化したいのですが、他のマニュアルの部分は... です名前はから来た。例えば
...
これは、すべてのYTDInfoシートに行われているので、私は情報のその部分にテキストを乱雑に保管しません。 ...と$J$2
と$M$2
は、スクリプトによって読み取られ、読み込まれた静的なセルだけです。
B11
を手動でチェックすると(B11
= "a")、A12
の名前はJ2
に渡されます。その名前はジョンです。スクリプトを実行すると、Johnと彼の支払金額('john 10-17-2017'!AB17
+ 'john 10-21-2017'!AB17
などのような)を持つシート名のすべてがM2
に表示されます。
すべてが$ 12,000と等しいとしましょう。手動で値をコピーして特別に貼り付けなくても、M2
($ 12,000)の値をJohnのYTDセル(F12
)にコピーできることをExcelに教えてください。
ありがとうございました。私は単純なExcelのものを知っていますが、私はこれらの部分を把握することはできません。私は式やVBAを使用することを非常に喜んでいます - どんな恐怖、怪しいことなしに!私はあなたの時間のために少し寄付し、あなたから何かを学ぶことができてうれしいです。
Sub YTDTotal_Click() '
Keyboard Shortcut: Ctrl+h
Dim mysheet As Worksheet '
Sheets("YTDInfo").Select '
Cells.Clear
For Each mysheet In Worksheets
mysheet.Select
If Left(mysheet.Name, Range("YTDInfo!K2")) = Range("YTDInfo!J2") Then
ActiveSheet.Range("H22").Select Selection.Copy
Sheets("YTDInfo").Select
Range("M2").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _ False, Transpose:=False
End If
Next mysheet
Sheets("YTDInfo").Select '
ActiveSheet.Range("H22").Select
End Sub
コミュニティの他の人々が慌てる前にすぐにこれを取得してください...あなたが変更した可能性のあるコード内の領域を指摘できるように、これを達成するには? –
ここで何を私のスクリプト今 ' 'サブYTDTotal_Click() だ: 'シート( "YTDInfo") を選択'' キーボードショートカットのCtrl + hを ' 薄暗いてMySheetは、ワークシート としてCells.Clearが のためにワークシート の各てMySheet mysheet.Select 左(mysheet.Name、レンジ( "YTDInfo!K2"))=範囲( "YTDInfo!J2")すると ActiveSheet.Range( "H22")の場合は。 選択を選択します。 シート( "YTDInfo") 範囲( "M2")を選択してください Selection.PasteSpecial貼り付け:= xlPasteAll、操作:= xlAdd、SkipBlanks:= _ Falseを、トランスポーズ:= Falseの エンド 次は シート( "YTDInfoを")てMySheet場合( "ActiveSheet.Rangeを選択」。 H22 ")を選択してください End Sub –
単一のマニュアル検索では素晴らしい結果が得られますが、最後にM2セルの値が表示されます。私は、この値を要求が発生した行に移動またはコピーしたいと思います。私がA42で始まった名前を検索した場合、YTDの合計はM2だけでなくF42で終わるようにしたいと思います。 –