web-dev-qa-db-ja.com

ActiveXコントロールが破損していますか? 「コントロール 'DTPicker1 "を作成できないため、デザインモードを終了できません」

デスクトップマシンでExcelVBAアプリケーションを開発しています。スプレッドシートにDatePickerActiveXコントロールがあります。正常に動作していました。

それから、旅行中に、私はラップトップでアプリケーションに取り組んでいました。戻ったとき、ファイルをデスクトップマシンに戻しました。アプリを実行しようとすると、「コントロール 'DTPicker1 "を作成できないため、デザインモードを終了できません」というエラーが引き続き表示されます。

コード内のコントロールとそのすべての参照の名前を変更しても効果はありません。コントロールを削除しようとすると、その名前のコントロールがなくなってもメッセージが表示されます。

これを修正するにはどうすればよいですか?

7
BillD

ブックの何かが破損したようです。このようなことが私に一度か二度起こった。

解決策は、すべて(コードとシートの内容)を新しいワークブックにコピーし、そこでアプリケーションを再構築することです。

[これで問題が解決したため、コメントからアップグレードしました。]

私の場合、MS Excel2013でActiveXDTPickerコントロールを使用してExcelシートを開発し、それをExcel 2010に移動し(引き続き機能します)、いくつかの変更を保存して、Excel2013の開発環境に戻したときにエラーが発生しました-DTPickersはできませんロードされました。

いくつかのインターネット調査の後、私は問題を解決する方法を少しトリッキーなマニュアルを見つけました:

  1. プロジェクトコードを開き、Excelで許可されている参照をアンロードします。
  2. コードに少し変更を加えます(コメント行を1つ追加しました)。プロジェクトをリロードするなどです。
  3. いくつかのマクロを実行します。たとえば、最初のシートをアクティブ化するマクロのみを実行します。
  4. Excelを閉じてから再度開きます。
  5. 出来上がり-日付と時刻のピッカーが正しく読み込まれます。

最初に「C:\ Users\xxx\AppData\Local\Temp\Excel8.0」の一時ファイルを削除しましたが、スタンドアロンアクションとしては役に立たなかったため、有用なアクションかどうかはわかりません。か否か。

1
raca

「コントロール 'CommandButton13'を作成できない」という同様の問題がありました。スプレッドシートは同僚のPCでも機能しました。 Sheet13がCommandButton1に名前が変更されていることをVBAエディターで見つけました。同僚のPCで、名前をSheet13に戻しました。これで私のPCで問題なく動作します。

0
JoeBloggs