解決済み

マクロ  関数式の中にRangeでセルを参照するには

  • 暇なときにでも
  • 質問No.972394
  • 閲覧数264
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 53% (281/522)

Range("B2").Formula = "=COUNTIF($A$2:$A$100,A2)"

A行のセル(1列はタイトルなのでA2以降)
に入力させているものが
A行自身の中に何個あるかを数えて
B2以降に表示させたいのですが
A列の最終行を取得して(下の式で)
↑の式の$A$100の部分に
どのように記述したらよろしいでしょうか?
もしくは 考える方向がおかしい、というような
御指摘もありましたらお願いします
(B列には現時点では式のまま表示しても
 問題ありません。
 B列の式を下方向へコピーする方法は
 以前こちらで御教授していただきました)

Dim mRng As Range
Set mRng = Range("A2", Range("A65536").End(xlUp))

質問者が選んだベストアンサー

  • 回答No.2

ベストアンサー率 28% (4440/15781)

他カテゴリのカテゴリマスター
エクセルVBAで関数を使うには
(1)Range("B2").Formula ="=関数"を使う
(2)WorksheetFunctionを使う
(3)繰り返しのロジックを使う(関数を使うに該当しませんが)
(2)は
Sub test01()
d = Range("A65536").End(xlUp).Row
MsgBox d
Cells(2, "B") = WorksheetFunction.CountIf(Range(Cells(2, "A"), Cells(d, "A")), Cells(1, "A"))
End Sub
(1)は
Sub test02()
d = Range("A65536").End(xlUp).Row
MsgBox d
x = "A" & d
s = "=CountIf(A2:" & x & ",A1)"
MsgBox s
Cells(2, "B").Formula = s
End Sub
なんてのも出来ます。
(3)は
Sub test03()
d = Range("A65536").End(xlUp).Row
MsgBox d
c = 0
For i = 2 To d
If Cells(i, "A") = Cells(1, "A") Then
c = c + 1
End If
Next i
Cells(2, "B") = c
End Sub
のようなものです。
お礼コメント
ennkai

お礼率 53% (281/522)

遅くなって申し訳ありません
様々な角度からの回答ありがとうございます

同じ結果を出すにも
いろいろ方法があるのですね
まだ使い分けるまでいたりませんが
地道に勉強したいです
投稿日時 - 2004-08-24 07:58:57
感謝経済、優待交換9月20日スタート

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 62% (292/464)

Range("B2").Formula = "=COUNTIF($A$2:" & Range("A65536").End(xlUp).Address & ",A2)"

で如何でしょうか。 

A列のデータがある最終行まで、B列に計算式を設定するのであれば、

Dim Rng As Range
For Each Rng In Range("A2", Range("A65536").End(xlUp))
  Rng.Offset(, 1).Formula = "=COUNTIF($A$2:" & _
  Range("A65536").End(xlUp).Address & "," & Rng.Address(False, False) & ")"
Next Rng

たぶん、このようなことだと思いますが、違っていたらごめんなさい。
お礼コメント
ennkai

お礼率 53% (281/522)

遅くなって申し訳ないです
式のほかに式コピーまで記入していただいて
ありがとうございました。

しかし、addressとrangeの
使い分けというか微妙な記述の違いって
難しそうですね^^
ありがとうございました
投稿日時 - 2004-08-24 08:00:16
  • 回答No.1

ベストアンサー率 39% (7415/18943)

Range("B2").Formula = "=COUNTIF($A$2:$A$" & Range("A65536").End(xlUp).Row & ",A2)"

で出来ませんか?
お礼コメント
ennkai

お礼率 53% (281/522)

遅くなって申し訳ないです
無事できました ありがとうございました!
投稿日時 - 2004-08-24 07:57:57
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ