使用 excel 中的 vba 基于另一列更改列值
Changing column value based on another column using vba in excel
我正在尝试创建一个宏按钮,如果 H 列同一行中的值为“REPO”,它将帮助我将 AE 列中的值更新为“N”。
我不确定为什么我的代码不能正常工作,当我 运行 时似乎 select AE 列而不是将值更改为“N”
Sub Change_Repo_Risk_to_N()
Sheets("expo").Select
Dim LastRow As Long
Dim i As Long
LastRow = Range("H" & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
If Range("H" & i).Value = "REPO" Then
Range("AE" & i).Value = "N"
End If
Next i
End Sub
如果这 3 个可能是错误的:
- 缺少
Trim()
- 缺少
UCase()
(Option Compare Text
是这个的替代品)
Select()
速度太慢,无法正确引用工作表 (try to avoid it)
试试这个:
Sub ChangeRepoRiskToN()
With Worksheets("expo")
Dim lastRow As Long
Dim i As Long
lastRow = .Range("H" & Rows.Count).End(xlUp).Row
For i = 2 To lastRow
If Trim(UCase(.Range("H" & i).Value)) = "REPO" Then
.Range("AE" & i).Value = "N"
End If
Next i
End With
End Sub
我正在尝试创建一个宏按钮,如果 H 列同一行中的值为“REPO”,它将帮助我将 AE 列中的值更新为“N”。
我不确定为什么我的代码不能正常工作,当我 运行 时似乎 select AE 列而不是将值更改为“N”
Sub Change_Repo_Risk_to_N()
Sheets("expo").Select
Dim LastRow As Long
Dim i As Long
LastRow = Range("H" & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
If Range("H" & i).Value = "REPO" Then
Range("AE" & i).Value = "N"
End If
Next i
End Sub
如果这 3 个可能是错误的:
- 缺少
Trim()
- 缺少
UCase()
(Option Compare Text
是这个的替代品) Select()
速度太慢,无法正确引用工作表 (try to avoid it)
试试这个:
Sub ChangeRepoRiskToN()
With Worksheets("expo")
Dim lastRow As Long
Dim i As Long
lastRow = .Range("H" & Rows.Count).End(xlUp).Row
For i = 2 To lastRow
If Trim(UCase(.Range("H" & i).Value)) = "REPO" Then
.Range("AE" & i).Value = "N"
End If
Next i
End With
End Sub