VBA - 将列值转换为负值

标签 vba excel

试图将工作表 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/

相关文章:

c# - 有没有办法在 C# 中将工具提示添加到 Excel 单元格数据

ms-access - 查找 VBA 控件对象的部分或页面

excel - 多个对象的类似语法

excel - 将 Excel 4 宏转换为 VBA

excel - 当多个单元格都为真时如何填充单元格

vba - 在 word doc 中搜索文本并粘贴到 excel 文件中

vba - 确定打印页面中的列数

excel - 为什么 For Each over Range.Columns(1) 不迭代单元格?

java - 从 Excel 数据源导出 Excel 报告 JasperReport

excel - 引用 Excel 工作表生成错误 : Variable not set