2017-04-27 2 views
0

これは初めてのフォーラムです。私は主にExcel VBAの初心者のプログラマーでした。翻訳された情報の効率または正確さを改善するための通常は単純なコードです。ループ内検索SumIFS

現在、私はSumIFS式でエラーが発生しているプロジェクトに直面しています。

データベースシートは、大量の情報を含むシートです。sumifsの目的は、各週を対応する名前とIDに合計することです。

データベースはMS Accessにもリンクされているため、すべてのアップデートで動的なままです。列F

xxはここセル行である - 列B 名 - - 列C ワーク - 列D 期間ここで

SUMIFSに重要IDでデータベース内のいくつかのフィールドであります数式が入力されます。 LRが最後の行です(これは、メインシートにもピリオドが配置される場所です)。

この式を現在の週までシート全体にドラッグする必要があります。したがって、自動入力のプロパティも見ています。その行でロックする試みを説明します

以下は、問題のコードです。

With Sheets(CurrSheet).Range(UppLimit, BtmLimit) _ 
    Set C = .Find("Actual", LookIn:=xlValues) 
    If Not C Is Nothing Then 
     firstAddress = C.Address 
     Do 

      xx = C.Offset(0, 2).Row 
      MsgBox xx 

      C.Offset(0, 2).Activate 
      activecell.formula= "SUMIFS(Database!$C:$C,Database!$F:$F,'2'!Range(LR,i),Database!$B:$B,'2'!Range(xx,1),Database!$C:$C,'2'!Range(xx,3),Database!$D:$D,'2'!Range($C$1)"" 

      i = i + 1 



      Set C = .FindNext(C) 
      If C Is Nothing Then 
       GoTo DoneFinding 
      End If 
      Loop While Not C Is Nothing And C.Address <> firstAddress 
    End If 
DoneFinding: 
End With 
+0

のスクリーンショットは、あなたがこの 'データベースのように定義する必要があり – shakespeare

+0

を助けるかもしれない$ F:$ F、 "&ワークシート(" 2 ").cells(lr、1).address&"、Database ... "'入力したときと同じように数式が表示されます –

答えて

0

これは動作するはずです、あなたの実際の式が正しく動作すると仮定:

activecell.formula = "=SUMIFS(Database!$C:$C,Database!$F:$F,2!" & Cells(LR, i).Address & ",Database!$B:$B,2!" & Cells(xx, 1).Address & ",Database!$C:$C,2!" & Cells(xx, 3).Address & ",Database!$D:$D,2!" & Cells(1, 3).Address & ")" 
+0

これを手伝ってくれてありがとうございます。 –

関連する問題