別のワークブック(wb2)のレコードを使用してワークブック(wb1)を更新できるかどうかを知りたい。
シナリオ:
wb2は、別の支社から送られてきたワークブックです。すべてのインベントリが含まれています。
wb1は、本社のワークブックです。これには、本社支店のすべての在庫が含まれている必要があります。
私の問題は、wb1内に他のブランチの既存のレコードが既にあるということです。マクロまたはvbaを使用してwb2内のコンテンツを自動的にコピーし、既存のものを複製せずにwb1に貼り付けることができるかどうかを知りたいのですが。私はもう試した
Dim wb As Workbook
Set wb = Workbooks.Open("C:\myworkbook.xls")
Dim x As Variant
x = wb.Worksheets("Sheet1").Range("MyRange").Value
thisworkbook.sheets("wb1").range("MyRange").value = x
レコードが複製され、更新されていないため、スタックしています。そこで、wb1の現在のレコードを手動で削除してから、更新されたレコードをwb2に貼り付けます。手動でも。
上記の私のコメントに代わるものはこれです。以前はこの方法を使用していました。サーバーで共有されているワークブックを使用します。Excelは、複数のユーザーが同時に使用していることを把握しており、調整を行います。
—
ejbytes
@ejbytes、ご回答ありがとうございます。レコードと言うときは、シート上のテーブル内のレコードについて話しています。シート自体のテーブルがデータベースとして機能するため、データベース(access、sqlなど)はありません。また、すべてのワークブックのすべてのテーブルは同じ構造(列、列名など)であり、はい、EMN(Equipment Management Number。First Column)と呼ばれる一意の識別子を1つ持っています。また、「Delete Duplicates WRT」も知りません。ごめんなさい。また、共有ワークブックは使用できません。他のブランチにはインターネット接続がありません。
—
ケルブス
一意の識別子に関して、Excelに重複削除機能が組み込まれています。重複のチェックが必要なデータ、[データ]タブ、[データツール]グループ、[重複の削除]を選択します。「プロシージャをマクロとして記録する」なら、既存のVBコードにそれを追加する良い方法を見つけることができると確信しています。
—
ejbytes
Excelはデータベースではないため、複数のワークブックを使用する必要がある場合は、かなり手作業になります。ワークシートはデータベースではなく、1つのように機能しないため、手動で保守する必要があります。MS Accessデータベースで、「ワークシート」の代わりに「テーブル」を使用するように変換することをお勧めします。:ここでは手動でExcelシートをマージする方法のリンクですlinkedin.com/pulse/...
—
ejbytesは
delete duplicates
WRTの一意のIDを使用できます。