2016-06-14 20 views
-1

こんにちはnewbie(Very New)ここに、 私は12枚(月)の可変データを持っています。各シートはその月の顧客の支出を示しています。私は何とか各顧客を1枚のシートに照合する必要があります。可変長ワークシートから別の可変長ワークシートへのコピー

通常、私はExcelのvlookup式のような単純なものを使用しますが、新しい顧客が年間を通じて参加できるため、この情報をソートする別の方法が必要です。私は通常、アカウントコードを自分のvlookupソースとして使用します。

だから、私はVBAを使う必要があると思うが、このようなものから始める場所を見つけるのは難しいと思う。

助けていただければ幸いです。

私が最初に考えることは、毎月1枚のマスターシートにコピーしてからそこに行くことです。もしそうなら、私はアクティブなシートの行の量を見つけて、それをマスターシートにコピーする必要があると思うが、すでにそこにコピーしたものを上書きする必要はない。

誰かが正しい方向に向けるでしょうか?

ジャ

+0

次のように考えてください。最初に、新しい顧客の追加時に動的に更新される顧客の一意のリスト。私の視点では、毎月のシートは重要ではありません。毎月の支出は、数式またはVBAコーディングによって簡単に計算できるので、顧客の賢明なシートを持つ方が良いかもしれません。いずれにせよ、あなたのリンクIDは顧客になります。したがって、新しい顧客が追加されると、彼のシートは自動的に生成され、顧客がシートを離れるとアーカイブされますが、マスターシートは履歴レコードを保持します。まず、何のデータがさまざまなデータポイント間でどのように流れるかを青い印で示します。 – skkakkar

答えて

0

次のコードを使用して、任意のワークシートの最初の空の行を見つけることができます。

Dim ws As Worksheet : Set ws = ThisWorkbook.Worksheets("SheetName") 
Dim firstEmptyRow 
' Get the first empty row in column "A" by finding the last used row and adding 1. 
firstEmptyRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1 

ws.Range("A" & firstEmptyRow).Value = "Whatever you want to put in the first empty row" 
0

理想的には、テストスタブ、あなたがしようとしている結果の草稿を提供します達成する。しかし、私はまだあなたを始めることができます。

  1. すべてのワークシート
  2. コピー
  3. 2つの加算ブランクラインがシート名が続くデータ
  4. の間に追加された新しいブックに各ワークシートの使用される範囲を通して、このマクロのループ
  5. さらに2つの空白行

私はあなたのデータの形について何も知らない。しかしそれは良い出発点です。

Sub CombineWorksheets() 
    Dim lastRow As Long, r As Range 
    Dim ws As Worksheet 
    Dim wbNew As Workbook 
    Set wbNew = Workbooks.Add 

    For Each ws In ThisWorkbook.Worksheets 
     Set r = ws.UsedRange 
     lastRow = lastRow + r.Rows.Count + 5 
     wbNew.Worksheets(1).Cells(lastRow - 2, 1) = ws.Name 

     r.Copy Destination:=wbNew.Worksheets(1).Cells(lastRow, 1) 
    Next 

End Sub 
+0

ありがとうございました、私は遊び始め、コードで何ができるかを見ていきます。 – user6463851

関連する問題