多分、まったく内容がなっていないというお叱りを受けそうですが、 今私が考えられるところはここまでです。 何が原因で動かないのか、分かりません。 よろしくお願いします。 確認用シートにデータがあります。データは個人カウントと月ごとの集計で成り立っています。 そのデータの個人名と月で検索した回答を集計用シートに表示させたいと考えています。 それで次のようなコードを書いてみましたが、思い通りの結果を出すことができませんでした。 式は直接式を入力すると正しい答えが出るのですが、コードを実行させた場合は#NAME?に なってしまいます。こういう場合は変数は使えないのでしょうか? また、集計で得た結果を結果シートに値のみ貼り付けてエビデンスを残したいのですが、 これもうまくいきません。 貼り付けた後順位の項目でソートさせたいのですが、これもうまくいきませんでした。 また、ピボットテーブルに毎月のデータを入力させて、ピボットグラフを作るように テーブルとグラフをあらかじめ作成し、前月のデータを集計させたかったのですが、 これも見事に失敗しました。 ところで、もし当月が1月の場合は12月を見るようにさせたいのですが、IF文がうまく できません。IF文を認識してくれていないので、END IFにするとIFがありませんとエラーが 返ってきます。 まったくお手上げです。 よろしくお願いします。 Sub カウント() '式の割当 Dim a As Long, b As Long, d As String, e As String Dim getRange As String, getpreRange As String a = Sheets("集計用").Range("B87").Value b = a - 1 d = "_" & a & "月" e = "_" & b & "月" If a = 1 Then b = 12 getRange = "=INDEX(確認用データ,H89,d)" getpreRange = "=INDEX(確認用データ,H89,e)" Sheets("集計用").Range("C89").Formula = getRange Sheets("集計用").Range("D89").Formula = getpreRange Sheets("集計用").Range("C89:D89").Copy Sheets("集計用").Range("C90:C128") '結果シートに値のみ貼り付け, 順位で並べ替え Sheets("集計用").Range("B87:E128").Select Selection.Copy Sheets("結果").Range("A1").End(xlRight).Offset(0, 2).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.Sort Key1:=Range("順位"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal '前月のデータからピボットテーブルを作成する Dim r As String r = a & "月" ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル2").PivotFields(r), "合計 / r", xlSum End Sub
↧