これは答えではありません。 あなたの質問を理解しようとする試みであり、その背後には興味深い問題があると思われます。問題に関する正しい推測をこのテキストから質問にコピーし、間違った推測を置き換える必要があります。
データを配列に保持することはできないため、問題の途中を説明する必要があります。書式設定されたデータを含むワークシートがあり、ワークシートにマージされる新しいデータの CSV ファイルを時々受け取ると思います。
説明を簡単にするために、これを使用してフォーマットされたデータを表します。
Name Week Mon Tue Wed Thu Fri
John 1 5 10 12 4 3
Gwen 1 3 15 3 1 8
John 2 3 7 18 6 4
Gwen 2 9 20 4 1 7
フォーマットされた名前が変更または追加される可能性があるとあなたは言います。おそらく上司は、月、火などはくだけすぎて、週の名前を綴ってほしいと判断したのでしょう。おそらく、土曜日と日曜日を追加して、日曜日が週の最初の日か最後の日かという議論に入るでしょう。
CSV ファイルの列見出しが、書式設定された列見出しと常に一致するとは限らないとおっしゃっています。書式設定されたヘッダーが省略されていないのに、CSV ヘッダーが省略されている可能性があります。おそらく、CSV の見出しはスペイン語です。おそらく、ラッシュ期間中は公共の休みがあるので、ジョンとグウェンは火曜日から土曜日まで働きます. おそらく、金曜日は新しいスタッフの安息日なので、彼らは日曜日から木曜日まで働きます。
ユーザーに2つの見出しシーケンスを選択させるために使用することを考えていInputBox
ますが、それがどのように機能するかわかりません。
まず、ワークシートを見て、目的のシーケンスを見つけることができます。ユーザーは何も選択する必要はありません。
第 2 に、ユーザーが CSV ファイルの名前セットとシーケンスを選択するには、マクロが可能なすべての名前セットとシーケンスのリストを保持している必要があります。それは可能ですか?CSV ファイルには新しい見出しが含まれている可能性があると述べているため、そうではないと思います。
見出しの 2 つのセットが次のとおりであるとします。
Worksheet: Name Week Mon Tue Wed Thu Fri
CSV file: Staff WoY Sun Mon Teu Wed Sat
名前列と週列には異なる名前があります。火曜日の綴りが間違っているという合併症を伴う別の平日があります。
CSVファイルに合わせたリストを用意してくれる?その場で違いを修正しようとしますか? 準備されたリストの完全なセットが可能だとは思いません。2 つ目は、限られた利益のために、巧妙で複雑なコードが必要になります。
(1) 要件を単純化し、(2) 代替名のテーブルを用意します。
簡単にするために、フォーマットされたデータに可能なすべての列を事前に含める必要があります。CSV ファイルに以前は不明だった土曜日が含まれている場合、CSV ファイルを適用する前に追加する必要があります。リストにない場合は、「Teu」を追加しようとしません。
私の代替テーブルは非表示のワークシートにあり、すべての行が同じ列の代替名のリストを定義する次のようなものになります。
Name Staff Staff member
Week WoY Week of year
Mon Monday M
Tue Tuesday Tu Teu
Wed Wednesday W
Thu Thursday Th
Fri Friday F
Sat Saturday Sa St
Sun Sunday Su Sn
このテーブルはあいまいさを処理できません。が与えられた場合、最初が火曜日で、2 番目が木曜日であるとM T W T F
推測できませんでした。T
必要に応じて、スペルミス ( などTeu
) を含めることができます。
ワークシートと CSV ファイルの両方のすべての列ヘッダーがこのテーブルにある必要があります。認識されない列ヘッダーがあると役立つメッセージが表示されるため、ユーザーはマクロを再実行する前にワークシート、代替表、または CSV ファイルを修正できます。
VBA に問題があるかもしれませんが、最初に設計上の問題があると思います。
幸運を。