0

別の行がユーザーによって定義された変数と同じ月を持っているという事実に偏った行を合計しようとしています。sumif 関数が最善の策だと思いますが、うまくいかないようです。明らかに見たい行は、日付形式の日付の行です(.numberformat = "ddd mm/dd"を使用)が、sumifは各セルの月を選択できないようです。これが私がこれまでに持っているコードです:

Dim cMade As Integer
Dim sDate As Date
 cMade = cMade + Application.WorksheetFunction.SumIf(ActiveSheet.Range("B1:RC1"), Month(sDate), ActiveSheet.Range("B30:RC30"))

ご覧のとおり、sDate はユーザーがユーザーフォームを介して入力した日付であり、dateserial を使用して変換します。と B1-RC1 は、私が見たい日付です。そして、範囲B30-RC30は、月が一致する場合に取得したい合計です(+ cMadeとして持っている理由は、シートをループするループにあるためです)。

このコードは正しいですか? 私はそれをいじり、何時間も代替品を探していましたが、何も思いつかないようです!

4

1 に答える 1

1

これがコードの一部にすぎず、残りは推測するだけであると仮定すると、次の修正を試してください。

  1. Range("B30,RC30")説明によると、ここのカンマはタイプミスのようRange("B30:RC30")に見えます。
  2. に置き換えApplication.SumIfますApplication.WorksheetFunction.SumIf

Worksheets("Sheet1").Range("A1:C10")さらに、 orActiveSheet.Range("A1:C10")構文などを使用して、範囲をより正確に定義することを検討してください。ただし、これは追加の手段である可能性があります。コードの残りの部分はわかりません。

それが何らかの形で役に立ったことを願っています。

于 2013-02-02T13:51:57.210 に答える