- 締切済み
ExcelVBAで関数を入力したいのですが
ExcelVBAで以下の関数を入力して起動したのですが、エラーで停止してしまいます。 Range("AJ109").Formula = "=SUMIF($K$4:$K$107,"10年度",AJ4:AJ107)" 記述の方法が間違っているのでしょうか? また、SUMIF関数の検索条件を”10年度”という固定値ではなく、VBA内で使用するNENDOという変数の値を検索条件にするのが理想です。 どなたか御存知の方がいらっしゃいましたら、何卒、宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- vbaの速度向上(sumif関数)
エクセルvbaの速度を向上できないか、お知恵を貸していただきたく存じます。 以下のvba(sumif関数)をもっと速めたいです。何とかできないでしょうか。長い記載となり申し訳ないのですが、何卒よろしくお願い申し上げます。 myCnt7 = 2 Do Worksheets("●").Cells(myCnt7, 4).Value = WorksheetFunction.SumIf(Worksheets("◆").Range("B:R"), Worksheets("●").Cells(myCnt7, 3), Worksheets("◆").Range("R:R")) - WorksheetFunction.SumIf(Worksheets("★").Range("B:C"), Worksheets("●").Cells(myCnt7, 3), Worksheets("★").Range("C:C")) Worksheets("●").Cells(myCnt7, 7).Value = WorksheetFunction.SumIf(Worksheets("◆").Range("B:R"), Worksheets("●").Cells(myCnt7, 6), Worksheets("◆").Range("R:R")) - WorksheetFunction.SumIf(Worksheets("★").Range("B:C"), Worksheets("●").Cells(myCnt7, 6), Worksheets("★").Range("C:C")) Worksheets("●").Cells(myCnt7, 10).Value = WorksheetFunction.SumIf(Worksheets("◆").Range("B:R"), Worksheets("●").Cells(myCnt7, 9), Worksheets("◆").Range("R:R")) - WorksheetFunction.SumIf(Worksheets("★").Range("B:C"), Worksheets("●").Cells(myCnt7, 9), Worksheets("★").Range("C:C")) Loop While myCnt7 > 201 ※シート●のC列から3列ごとに、Sumifの検索条件があります。 ※シート●のD列から4列ごとに、Sumifの計算結果を出力させます。 ※計算対象シートは、シート◆とシート★の2つです。 シート◆のSumif合計から、シート★のSumif合計を差し引いています。 Sumifの条件自体は、どちらのシートも同じ(シート●)。 ※上記のSumif関数の記述は、3つですが、実際の記述は24あります。 ※すなわち、検索条件の組み合わせが24あり、201行分をmyCnt7でLoopさせて実行しています。
- ベストアンサー
- Visual Basic
- VBAのFormula関数について
karaW = Sheets(shname).Range("A" & i).Value & ".*.*" Sheets(shname).Range("H" & i).Formula = "=SUMIF(A:A," & karaW & ",B:B)" とすると、2行目でエラーが出ます。どうやらkaraWを""で囲わないと だめなようですが、普通に囲むと変数の値がそのままセルに書き こまれてしまいます。 対処方法をお教えいただけないでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excel VBAで、Averageの範囲を変数を使って記述したい。
VBA初心者です。 例えば、 n=1~26 n=1の時 Range(A1:Z1).Formula=("=average(A2:A5)") n=2の時 Range(B1:Z1).Formula=("=average(B2:B5)") n=3の時 Range(C1:Z1).Formula=("=average(C2:C5)") (以下、n=26まで続く) これを変数を使って、すっきり記述するにはどうすればよいのでしょうか?よろしくお願いします。
- ベストアンサー
- Visual Basic
- ExcelVBA異なる適用先範囲の条件付き書式取得
お世話になります。ExcelVBA(Excel2007)にて質問となります。 A1:E1セルにに「1」、「2」、「-」、「4」、「5」と入っており、 条件付き書式で以下の条件が登録されている場合、 FormatConditionsコレクションのFormula1で目的の数式を取得出来ません。 条件1:数式「=A1=1」の適用先「=$A$1」 条件2:数式「=A1="-"」の適用先「=$A$1:$E$1」 イミディウィンドウで実行した結果、次のようになります。 ~~~~~~~~~~~~~~~~~~~~~~~~ debug.print range("A1").FormatConditions.Count 2 debug.print range("A1").FormatConditions(1).Formula1 =A1="-" debug.print range("A1").FormatConditions(2).Formula1 =A1="-" ~~~~~~~~~~~~~~~~~~~~~~~~ セルA1を照査対象とした場合、count数は2と得られるのですが、 FormatConditions(1).Formula1で「=A1="-"」が取得されます。 「=A1=1」を取得する方法はどうすればいいでしょうか? 条件2の適用先を「=$A$1」とした場合は意図した値を取得できました。 ~~~~~~~~~~~~~~~~~~~~~~~~ debug.print range("A1").FormatConditions.Count 2 debug.print range("A1").FormatConditions(1).Formula1 =A1=1 debug.print range("A1").FormatConditions(2).Formula1 =A1="-" ~~~~~~~~~~~~~~~~~~~~~~~~
- 締切済み
- Visual Basic
- VBAの関数について
VBA初心者です。 VLOOKUP関数の使い方がわかりません。 具体的に書かせてもらうと VBAの中にVLOOKUP関数を使いたいです 試験1ファイルのシート"sheet1"にある 検索値を使い 試験2ファイルの指定した検索範囲を 試験1ファイルのシート"sheet1"の指定した位置に数値を挿入することです。 例えばですが(この使い方も間違ってるかもしれません)コードを書いてみると 試験1の検索値はA5セルとします 試験2の検索範囲はB1~C20とします 検索範囲から取得した数値の位置はD5とします VLOOKUPに関してですが 検索値は変数を使い 検索値範囲も変数を使い 列番号はC列がいいので3で 検索方法はFALSEでお願いします sub test() dim a as range dim b as workbooks dim c as range set a = range("B1~C20") set b = workbooks("sheet1") set c = range("A5") workbooks("試験1").worksheets("sheet1").range("D5").value=workbooks("試験2").activesheet."=VLOOKUP(ここがわかりません)".value end sub そもそも変数やsetの使い方が間違ってるかもしれませんm(__)m コードを書いて貰えるととても助かります。 回答お願いします。
- ベストアンサー
- Visual Basic
- SUMIF関数の検索条件の記入方法について
SUMIF関数の検索条件の設定がうまく出来ず困っています。 設定方法が分かれば教えてください。 ■SUMIF関数とは「選択(検索)条件を指定して合計値を計算する」関数です。 例えばこんな例です。 100円~300円までという選択(検索)条件を入れる場合はどうしたらよいでしょうか??
- ベストアンサー
- オフィス系ソフト
- リサイクル業者がキヤノン製のプリンターを引き取らない場合、どのように処分すればよいのでしょうか?
- 以前故障したプリンターを新しいものに買い換えましたが、古いプリンターをどう処分すればいいのか分かりません。
- 誰もが持つリサイクルプリンターの処分方法について教えてください。
お礼
私がやりたかったのは、以下のVBAなのです。 ----------------------------------------------------------------------- Sub test01() Dim nendo As String nendo = """a""" Range("A1").Formula = "=SUMIF($A$4:$A$12," & nendo & ",B4:B12)" End Sub ----------------------------------------------------------------------- この回答に辿り着くのに、imogasi様の御回答を参考にさせていただきました。 どうも有難うございました。