問題タブ [scripting.dictionary]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
excel - クラスがオートメーションをサポートしていないか、予期されるインターフェイスをサポートしていません
Excel でのレポート用に一種の CSV セキュリティ ファイルをインポートしています。ファイルの基本的な形式は次のとおりです。
レポートは、次のような一種のマトリックスです。
これを行う最も簡単な方法は、次の手順を実行することです。
- ファイルを開き、
Scripting.Dictionary
. - シートを作成し、辞書に基づいてマトリックスを作成します。
明らかに、実際のファイル形式と実装はもう少し複雑ですが、これが要点です。
約 10Mb までのファイルでは問題なく動作しますが、ファイルがその数 (数千のユーザーとロール) を超え始めると、次のエラーが発生します。
これは次の行で発生します。
プロセスの下を見ると、EXCEL.EXE はエラーがスローされた時点で約 1.5Gb の RAM を使用しています。ワークブックをデバッグしてから閉じるのではなく、終了すると、次のメッセージが表示されます。
8Gb のうち約 4Gb をまだ使用できるにもかかわらず、RAM が不足していると思います。
私の質問は次のとおりです: RAM をあまり使用せずにこれを行うには、コードをリファクタリングするにはどうすればよいですか?
ファイル内のセクションは、異なる順序である可能性があります (セクション!Permissions
の前に来る可能性があるように!Users
)。
arraylist - 辞書のキーの値である配列に追加するにはどうすればよいですか?
辞書をそのように設定した場合:
ユーザーに名前を尋ねます。
次に、ユーザーに 5 つの数字を尋ねます。
ArrayListを使用して、5 つのプロンプト番号を任意の配列に配置します。
name
設定した辞書にキーを追加すると。
以前に設定した辞書にmyArrayList
値として追加できますか?name
myDict
myArrayList
もしそうなら、5つの数字の質問をループする場合、どのように追加または追加できますか?
arrays - scripting.dictionaryのVBA書き換え配列
各キーが私が作成した名前であり、各項目が 3 つのオブジェクトの配列である辞書を作成しようとしています: 文字列、整数、および SOAP 要求からの結果の配列。
次のように配列を初期化します。
そして、X x 4 の配列を返す関数「getTheRisk」があります (これは SOAP 要求です。返される結果の数はわかりませんが、結果ごとに 4 つの値が返されます)。
その結果を辞書の項目の 3 番目の要素に格納したいと思います。次のように試みます。
これはコンパイルして正常に実行されますが、配列を割り当てた後、辞書に空として表示されます。
getTheRisk 関数は、次のようなものを返します。
dict の配列を SOAP リクエストの結果に設定するにはどうすればよいですか?
vba - scripting.dictionary の VBA 追加キー/項目ペア
このコードは数日間機能し、辞書をうまくループしていました。ループが壊れ始めました。辞書に余分なキーがあり、それらがどこから来たのかわかりません。
次のスクリプトを使用して scripting.dictionary を作成しています。
その後、時計に見られるように、オブジェクトは空です。
次に、最初のキーとアイテムのペアを追加します。
この 1 行のコードを実行すると、次のようになります。
この 2 つの余分なキー (アイテム 2 と 3) はどこから来たのですか?! 後で私のコードで使用するので、これは問題です:
そして、空のキーを参照し始めるため、このループは壊れます。これは今まで発生していなかったようで、コードは数日間正常に動作しています。(コードの他の部分をいくつか変更しましたが、これとはまったく関係ありません。)
私がばかげたことをしている、または明らかな何かを見逃している場合はお知らせください。ありがとうございます!
excel - cobo値に基づいて正しいシートを識別するユーザーフォーム
クライアント情報を含むワークブックがあります。クライアントごとに 1 つのシートがあり、各シートにはクライアント固有の ID がラベル付けされています。ユーザーがコボ ボックスからクライアントを選択するユーザー フォームを起動したいと考えています。次に、適切なシートの最後の行のデータがユーザー フォームに入力されます。
同じワークブック内の他のコードでは、スクリプト ディクショナリを使用していますが、それらはすべて特定のシートの特定の範囲に関連付けられています。UserForm ですべてのシートを検索して cobo_ClientID フィールドの値と同じ名前のシートを見つけ、MAX の更新日を含む行から正しいデータ要素を取得する方法がわかりません。
以下は、私が他の分野で使用しているスクリプト ディクショナリの例です。