■前提(実現したいこと)
A列に小計という文字列が何行かおきに入力されています。
A列小計行を見て、該当列にSubtotal関数を入力したいです。
該当列は、見出項目(1行目)に「金額」が入力されている列であり、複数列存在します。
該当列を探した後に、Subtotal関数を該当行に入力したいです。
■実現できないこと(下記②の箇所)
(A列)が小計の文字列の場合、(例:B列)subtotal関数を作成する。
①addressプロパティを使い、列名を取得する。
② ①で取得した列名を「A1形式」に変換し、subtotal関数を作成したい。
■作成中のコード
Sub 小計設定()
Dim myRange As Range'keywordを探す領域 Dim FoundCell As Range Dim keyword As String 'keywordを探す領域をセット Set myRange = Range(Cells(1,2),Cells(1,最終列))’(←最終列は前モジュールで取得済み変数) keyword = "金額" 'keyword対象セルを検索 Set FoundCell = myRange.Find(keyword, LookAt:=xlWhole) Dim myCell As Range Set myCell = FoundCell Dim 列A1形式 as string Do ’subtotal関数最初の業をsidxとする sidx = 2 For r = 2 to 最終行’(←最終行は前モジュールで取得済み変数) If Cells(r,1)="小計" 列A1形式 = Split(Cells(r,myCell.Column).Address, "$")(1) '▼******ここが判りません。(「列A1形式」取得した変数をSUBTOTALへの繋ぎ方)********************************* Cells(r.myCell.Column).Formula = "=SUBTOTAL(9,列A1形式" & sidx & ":列A1形式" & r -1 & ")" '▲******判らない箇所ここまで********************************************************************* sidx = r + 1 End if Next '次に見つかったセルをmyCellにセット Set myCell = myRange.FindNext(myCell) Loop While myCell.Column <> FoundCell.Column
End Sub
不明な箇所は****で囲んだ1行です。
誠に恐れ入りますが、ご教授いただきたくどうぞ宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/25 13:10