我的桌子上满是数字。我需要一个宏脚本,该脚本将目标值与得分值进行比较。如果得分值高于目标值,则将目标值更改为得分值。
有人可以帮我吗?
我尝试将以下代码应用于一个单元格,但没有用。
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
答案 0 :(得分:0)
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
答案 1 :(得分:0)
我认为这可能对您有帮助
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