MS Excelの形状に基づいて変数を数える
「四角形50」という名前の形状が緑色に着色された場合(RGB(146,208,80)).
DefaultShape(Rectangle 50)色は白です.
ユーザーは形をクリックします(四角形50)
コードチェック、ActiveSheetが最後のシートである場合は、形状の色が緑色に変更され、各シートの緑色の四角形の総数がカウントされ、値が「合計」と呼ばれるシートに表示されます.ActiveSheetがではない場合
最後のシートで、長方形の色のみが変更されます.
私はこのコードをシート1の形を選択しないことによって、sheet2(Sheet2が最後のシートです).
しかし、 "Total"シートに表示されるCATAの値は2です(しかしそれは1でなければなりません).
下のコードを見てください
サブカウント()
Dim CallingsHapename
薄暗いACjpSとしてワークシートとして
ワークシートとして薄暗いLSjpS
ワークシートとして薄暗くする
微小
set lstws= sheets(ActiveWorkbook.Worksheets.Count)
CallingShapeName= ActiveSheet.Shapes(application.caller).Name
ACjpS= ActiveSheet
を設定しますactws.name= lstws.nameの場合
cata= 0
ActiveSheet.Shapes( "Rectangle 50").fill.forecolor.rgb= RGB(146,208,80)
ワークシートの各ALSHTについて
alsht.name<>"hello"とalsht.name<>"total"がその後
ActiveSheet.Shapes( "Rectangle 50")の場合.fill.forecolor.rgb= RGB(146,208,80)
Cata= Cata + 1
の場合は終了
の場合は終了
次にALSHT
ワークシート(「合計」)範囲( "H12").値= cata
else
ActiveSheet.Shapes( "矩形50").fill.forecolor.rgb= RGB(146,208,80)
の場合は終わります終了SUB
返信リスト(回答:5)
私はあなたの問題を複製することができません.
私は2枚のシートを持つブックを作成しました.1つのシート1と合計という名前のもの.
私はSheet1の形をし、それは「長方形50」と名付けられ、白く色付きであなたがそれに供給したコードを割り当てました.形状をクリックすると、コードは形状の色を緑に変えて挿入しました
全シートのセルH12中の1.
あなたのワークブックをonedrive
で共有して、ここにリンクを投稿してください.
応答5# ->にスキップ3 #NimalanこんにちはJason、
以下のようにブックを作成してください.
合計4枚
1.こんにちは
総
3.シート1
4.シート2
シート1とシート2の灰(四角形50)を挿入します.
上記の投稿から私のコードを貼り付けて、それを形に割り当てます.
次に、Sheet2で入手可能な形状をクリックしてください.
その後、「合計」
の値を確認してください
応答3# ->にスキップ2 #JasleS私は要求されたとおりにしました、そして私はあなたの結果を2に複製することができます2.
これは、コードが同じループ内のSheet1とSheet2の両方を通過し、「四角形50」という名前の形を探しているためです.その名前を持つ2つの形状があるので、1回の時間はCATA変数に追加されますので、2が得られます.
応答2# ->にスキップ4 #Nimalan正しい結果を得るためにコードが変更されるべきですか.
変数cataは、色が緑色のときだけカウントされるべきです.そして、すべてのシートを通してループする必要があります.
応答4# ->にスキップ1 #JasleS 1実際には変更する必要があるのは1つだけでした.
この行を変更する:ActiveSheet.Shapes( "矩形50")の場合.fill.forecolor.rgb= RGB(146,208,80)
これに:alsht.shapes( "矩形50")の場合.fill.forecolor.rgb= rgb(146,208,80)
√