我有一个电子表格,可以计算某个月的个人得分。我目前有一个宏,可以根据个人姓名将当前分数复制到表格中。我希望能够在一个表格中跟踪多个月的分数。例如,想象一下,我的记分卡在5月给约翰85分。我希望宏将Johns得分放在表中,如下所示。
Name Jan Feb Mar April May June
Jim
James
John 85
Jack
我尝试使用我所拥有的宏进行一维操作(即将当前分数放在名称旁边),但没有任何运气。无效的代码如下:
Private Sub MonthScore()
Dim row As Integer
Dim column As Integer
row = 2
column = 2
Do While (Sheets("Sheet2").Cells(row, column).Value <> "")
If Sheets("Sheet2").Range("A" & row).Value = Sheets("Scorecard").Range("B2").Value _
And Sheets("Sheet2").Cells(1, column).Value = Sheets("Scorecard").Range("J2") Then
Sheets("Sheet2").Cells(row, column).Value = Sheets("Scorecard").Range("H15").Value
End If
row = row + 1
column = column + 1
Loop
End Sub
任何有关使此代码生效的帮助(或任何可以使这项工作的代码集)都将非常感激。
答案 0 :(得分:0)
您可以使用Application.Match()
在名称和月份范围中找到值:
Sub MonthScore()
Dim mR, mC
Dim shtSC, sht2
Set shtSC = Sheets("Scorecard")
Set sht2 = Sheets("Sheet2")
mR = Application.Match(shtSC.Range("B2").Value, sht2.Columns(1), 0)
If Not IsError(mR) Then
mC = Application.Match(shtSC.Range("J2").Value, sht2.Rows(1), 0)
If Not IsError(mC) Then
sht2.Cells(mR, mC).Value = shtSC.Range("H15").Value
End If
End If
End Sub