2016-08-19 1 views
0

私はこれらの2つのテーブルを取得しました.1つはデータテーブル、2番目は命令テーブルです。VBA - 別のブックを使用してマスタブックをロードする

私は毎日命令表を更新し、IDに基づいてデータテーブルを更新するマクロを実行します。

現在のところ、これは本当に簡単です。データテーブルID(Col A)が命令テーブルID(Col J)と一致する場合、対応するデータCol B〜Fは命令テーブルに従って更新される。

DATATABLE

コルA = ID

コルBG =異なる名前

指示テーブルである:

コルIは、Nに(変化(Yへの変化)を追加または削除であります)Col Ki

ColJは、ID

C1 Kは更新する名前(Col B-Gのヘッダ)を示します。

Sub updatedatatable() 

On Error Resume Next 

Dim instructionlastrow, findtablecolumn, findtablerow As Long 

Dim findid As Integer 

instructionlastrow = Range("I" & Rows.Count).End(xlUp).Row 

For i = 2 To instructionlastrow 

    findid = 0 

    If Range("I" & i).Value = "Add" And Range("A:A").Find(Range("J" & i).Value).Row = 0 Then 

     Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1).Value = Range("J" & i).Value 

     findtablecolumn = Rows(1).Find(Range("K" & i)).Column 

     findtablerow = Range("A:A").Find(Range("J" & i)).Row 

     Cells(findtablerow, findtablecolumn).Value = "Y" 

    ElseIf Range("I" & i).Value = "Add" And Range("A:A").Find(Range("J" & i).Value).Row <> 0 Then 

     findtablerow = Range("A:A").Find(Range("J" & i)).Row 

     findtablecolumn = Rows(1).Find(Range("K" & i)).Column 

     Cells(findtablerow, findtablecolumn).Value = "Y" 

    ElseIf Range("I" & i).Value = "Remove" And Range("A:A").Find(Range("J" & i).Value).Row <> 0 Then 

     findtablerow = Range("A:A").Find(Range("J" & i)).Row 

     findtablecolumn = Rows(1).Find(Range("K" & i)).Column 

     Cells(findtablerow, findtablecolumn).Value = "N" 

    End If 

Next i 
End Sub 

命令テーブルが異なるワークブックからロードできるように、誰も私を教えることができる場合、私はさまよいました。

おかげ

答えて

0

私は2つのテーブルの関係はあなたの説明によるとすることになっているexcactlyかわからないんだけど、私はこのように理解。現在、同じワークブック(同じワークシート内にある)にそれらを持っていますが、それらを別のワークブックに入れたいとします。あなたがWorkbooks.Openメソッド https://msdn.microsoft.com/en-us/library/office/ff194819.aspx

を使用することができますVBAで別のブックからのブックにアクセスするには

あなたは行っていないので、私はまた、ロン・デ・ブルーイン http://www.rondebruin.nl/win/section3.htm

からいくつかのコード例をお勧めすることができます別のワークブックにアクセスするためのコーディング試行私は100%あなたがしたいことではありませんが、リンクを見て、解決策を試して、もう一度やり直してみてください。

+0

はい、あなたは正しいです、彼らは現在、同じワークシートにあります。しかし、私はそれを別のワークブックに分割したいので、管理しやすくなります。私はworkbooks.openの使い方を理解していますが、新しい開かれたブックに基づいてすべてのチェック/更新を行う方法がわかりません。あなたがそれをやる方法を私に教えてもらえれば、残りのコードをそれに応じて編集することができます。基本的に私は、ユニークな識別子を介して命令ブックにしたがってデータテーブルブックを更新し、命令に従って異なる方法で更新したいと考えています。 – Zardi

関連する問題