0

次のコードは、「非表示、無効、またはフォーカスを受け入れないタイプであるため、フォーカスを移動できません」というエラーを返す単一の場合を除いて、他のすべての状況で機能します。シート内のデータは、基本的な数字と単語のみで構成されています。私の目的は、あるワークブックから範囲を選択して、別のワークブックに貼り付けることです。Excel はセル内にあるものを認識していないように見えますが、実際には存在します。なぜこれが起こっているのか誰にも分かりますか?前もって感謝します。

    Set Users = Application.Workbooks.Open(PathA)
        With Prices
        .Sheets("Sheet").Range("A:AJ").Select
        Selection.Copy
        End With
    'Set Risk = Application.Workbooks.Open(PathX)
        With Risk
        .Sheets("Sheet").Range("A1:AJ1048576").PasteSpecial Paste:=xlPasteAll
        .Save
       ' .Close
        End With
        Users.Close
4

3 に答える 3

0

他の誰かが同じ問題を抱えていて、MSDN フォーラムで解決できたようです

http://social.msdn.microsoft.com/Forums/office/en-US/3263b079-7e4f-452c-8dcc-92c682b8370b/excel-form-cant-move-focus-to-the-control-because-it- is-invisible-not-enabled-or-of-a-type-that?forum=exceldev

おそらく、この修正はあなたの状況にも当てはまるでしょう。

... OK、そのページで、ある男が彼のために働いているように見えるクラッジを持っています:

エラーは次のとおりです。

コントロールが非表示であるか、有効になっていないか、またはフォーカスを受け入れないタイプであるため、コントロールにフォーカスを移動できません。

直し方

1. フォームやコントロールなど、問題のあるオブジェクトを選択します。

2. プロパティ ウィンドウで、オブジェクトの名前を選択し、末尾に「x」を追加して名前を変更します。たとえば、CPanel の名前を CPanelx に変更します。

3. フォームを保存します。

4.CPanelx の名前を CPanel に戻します。

5. フォームを実行します。

6. 問題が解決しました。

Excel VBA のどこかおかしなところがありますが、これでまた作業ができるようになります。スティーブ D.

そして、他の誰かが根本的な問題を説明しましたが、彼の解決策にはデザインモードの使用が含まれていました。これは、vba での自動化の目的を無効にしているように思われますが、モデレーターは彼の答えをより気に入っているように見えたので、ここでも同様です

通常の使用では、activeX コントロールはアクティブ化のみを目的としており、選択されることはありません。違いがあります。特にコントロールを (手動またはコードで) 選択する必要がある場合は、最初に Excel をデザイン モードにしてみてください。

トピック「フォームと ActiveX コントロールを選択できないのはなぜですか?」も参照してください。Excel のヘルプ (VBA のヘルプではない)

ピーター・ソーントン

于 2013-10-15T05:28:27.153 に答える