0

ドロップダウン名を返すように記述されたマクロが割り当てられたExcelワークシートにドロップダウンがありますが、無駄です

Private Sub Cmb()
   'cmb is the assinged macro name

    Workbooks("Test2").Worksheets("Sheet3").Activate
    MsgBox ActiveSheet.Shapes(Application.Caller).Name

End Sub

戻ってきていますthe item with specified name wasn't found

この問題を解決するのを手伝ってください。エクセル初心者なので詳しく解説していただけるとありがたいです

4

1 に答える 1

1

マクロをコンボボックスに割り当てていると述べたので、それは確かにフォーム コントロール コンボボックスであり、activeX コントロールではありません。したがって、 Application.Caller は、マクロを呼び出しているコンボボックスの名前を確実に返します。これを試しましたか:

MsgBox "The name of the combobox is " & Application.Caller

編集:スプレッドシートを受け取った後。

だから基本的に:2つのエラーがあります:

 Workbooks("Test2").Worksheets("Sheet3").Activate

ドロップダウンをクリックすると、必要なシートが常にアクティブになるため、上記の行は必要ありません。Test2 はワークブックではないため、マクロの主なエラーが発生しています。Workbooks("Test2.xlsm") を使用する......

次に、次の行に進みます。

これを使用しました:

ActiveSheet.Shapes(Application.Caller).Name

Name プロパティが String を返すようになりました。したがって、その値を変数に格納する必要があります。どの変数にも格納していないため、エラーが発生しています。これを使って:

Dim shpName as String

shpName = ActiveSheet.Shapes(Application.Caller).Name

エラーが削除されます。スプレッドシートも返送しました。ご不明な点がございましたら、お気軽にお問い合わせください。

ありがとう、V

于 2013-09-02T13:24:18.293 に答える