试图将工作表 Data_TC 中的整个 H 列从正值转换为负值。范围包括 H1:LastRow
我有 LastRow
作为一个模块如下,
Option Explicit
Function LastRow(sh As Worksheet)
On Error Resume Next
LastRow = sh.Cells.Find(What:="*", _
After:=sh.Range("A1"), _
LookAt:=xlPart, _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
这是我用来转换值的代码:
Worksheets("Data_TC").Activate
Application.ScreenUpdating = False
Application.CutCopyMode = False
For Each cell In Sheets("Data_TC").Range("H" & LastRow(Sheets("Data_TC")))
If cell.Value > 0 Then
cell.Value = cell.Value * -1
End If
Next cell
当我运行时,它会将随机值转换为负值,但仅此而已。知道为什么吗?
最佳答案
尝试:
For Each myCell In Sheets("Data_TC").Range("H1:H" & Sheets("Data_TC").Range("H" & Rows.Count).End(xlUp).Row)
If myCell.Value > 0 Then
myCell.Value = myCell.Value * -1
End If
Next myCell
这将遍历列
H
中的所有单元格并将正数转换为负数
关于VBA - 将列值转换为负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51938206/