0

これは簡単なことだと思いますが、全体を見渡しても説明が見つかりません。確かに、他の多くの人がモジュールとユーザーフォームを別のワークブックに移動したいと考えています。3 つのモジュールと 1 つのユーザーフォームをエクスポートし、それらを新しいワークブックにインポートしました。エクスポートされたユーザーフォーム名は「NUI」で、インポート後に新しいワークブックのプロパティを見ると、名前はまだ「NUI」です。ただし、サブを実行してユーザーフォームを表示しようとすると、ランタイムデータの不一致エラーが発生し、NUI.StartUpPosition 行で NUI が強調表示されます。これが機能しなくなった理由はありますか?切断する必要がある何らかのリンクはありますか? モジュールはまだ他のファイルでいくつかのユーザーフォーム NUI を見つけようとしますか? 新しいワークブックでユーザーフォームを削除して新しいユーザーフォームを追加すると、NUI という名前を付けようとすると、名前が使用されていることがわかります。何か案は?

Sub CallUserForm()
    '  Calls UserFrom NUI and centers it to excel window whether it is full screen or not.
    PO.Unprotect Password:="1234"
    PO.Activate

    NUI.StartUpPosition = 0
    NUI.Top = Application.Top + 125
    NUI.Left = Application.Left + Application.Width / 2 - NUI.Width / 2
    NUI.Show
    PO.Protect Password:="1234"
End Sub
4

1 に答える 1

0

あなたが説明したことを試しました(フォームとモジュールのエクスポート、新しいスプレッドシートへのインポート)。それは私にとってはうまくいきました。ただし、フォームのコピーを誤って元のファイル (新しいファイルではなく) にインポートしたのではないかと思います。

新しいファイルからフォームを削除すると、同じエラーが発生するため、実際に新しい場所にインポートしたことを確認してください。

于 2015-01-05T23:00:20.373 に答える