我有一个满是数字的表格。我需要一个宏脚本,它将目标值与分数值进行比较。如果分数值高于目标值,则将目标值更改为分数值。
有人可以帮助我吗?
(https://i.stack.imgur.com/tp1xQ.jpg)
我尝试在一个单元格上应用以下代码,但它不起作用。
Sub check_value()
If Cells(8, 23).Value < Cells(8, 24).Value Then
Cells(8, 23).Value = Cells(8, 24).Value
End If
End Sub
我认为这可能会对您有所帮助:
Option Explicit
Sub test()
Dim LastRow As Long, Row As Long, Target As Long, Score As Long, LastColumn As Long, Column As Long
With ThisWorkbook.Worksheets("Sheet1")
LastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
For Column = 2 To LastColumn
For Row = 2 To LastRow Step 2
Target = .Cells(Row, Column).Value
Score = .Cells(Row + 1, Column).Value
If Score > Target Then
.Cells(Row, Column).Value = Score
End If
Next Row
Next Column
End With
End Sub
F2 和 F3 有一个目标<分数的场景,因此我们可以比较值(类似于你得到的值)>
if cells(2,6).value < cells(3,6) then cells(2,6).value = cells(3,6).value
我对测试代码的唯一更正是使用行而不是列进行比较,这似乎是评估每个技能的方式(例如,技能 5 的目标为 5 (F2),而分数为 7 (F3))。
请注意,您可以通过查找最后一列 (lc) 和最后一行 (lr) 来使用循环来遍历整个数据集,这样:
For j = 2 to lc 'columns
for i = 2 to lr step 2 'rows with a step of 2 so you can do sets of score/target
'do stuff
next i
next j