私は現在、学生のスコアのレポートを作成し、各学生の終わりにパーセンテージを表示するためのマクロに取り組んでいます。
写真は一目瞭然だと思います。左側に示すような学生のデータがあり、右側にそのようなレポートが必要です。私は1人の生徒用にマクロを作成し、各生徒ごとに毎回再実行することができましたが、すべての生徒に対して一度にレポートを作成し、すべての生徒が終了したら停止する方法がわかりません。
次のコードは、新しい学生名が発生するたびに新しい行を作成するためのものです。
Dim iRow As Integer, iCol As Integer
Dim oRng As Range
Set oRng = Range("A4")
iRow = oRng.Row
iCol = oRng.Column
Do
'
If Cells(iRow + 1, iCol) <> Cells(iRow, iCol) Then
Cells(iRow + 1, iCol).EntireRow.Insert Shift:=xlDown
iRow = iRow + 2
Else
iRow = iRow + 1
End If
'
Loop While Not Cells(iRow, iCol).Text = ""
しかし、パーセンテージ計算のためにコードを入力する場所がわかりません。
ActiveCell.FormulaR1C1 = "=(R[-3]C+R[-2]C+R[-1]C)/COUNT(R[-3]C:R[-1]C)"
計算は非常に簡単ですが、ループの方法はわかりません。セルをマージして、セル用のボックスを作成できます。私はそれを正しくやっているかどうかわかりません。しかし、これを実現する簡単な方法があれば、教えてください。私は長い道のりを進んでいると思うが、私はこれの初心者です。そして、人の名前がマージされるように、マージコードをどこに入力する必要があります。
不明な点がある場合はお知らせください。
前もって感謝します。
PS私は教師ではありません。このようなレポートを作成したいだけです
3
「マクロで作業する」とは、既に開始し、共有するコードと特定の質問があることを意味します。質問に追加してください。ソリューション全体を求める質問は、ここではトピック外です。
—
マテジュハス
すでにVBAスクリプトを書いているので、ここに投稿した方が良いので、修正を提案するのに役立ちます。
—
ラジェッシュS
VBA(マクロ)に重複した名前の列をマージすることをお勧めします。VBAの一部を小計に使用するか、手動で行う必要があります。
—
ラジェシュS
パーセンテージは出力のどこから来ますか?Aが物理学で65、生物学で75になったのはなぜですか?
—
ブルースウェイン
ピボットテーブルを使用しない特別な理由はありますか?これはまさに彼らがすることです。
—
フリーマン