excel - 如果单元格值为数字,则将单元格区域除以特定数字

标签 excel vba

只有当单元格包含数值时,我才必须将工作表的所有单元格值 -“Databook”除以数字 1000000。这意味着我必须只划分表格中包含 17577.2、2123、13979123.22、239812098321.1 和 9798 等数字的单元格。

Sub i()

'declare variables
Dim ws As Worksheet
Dim rng As Range
Dim myVal As Range
Set ws = Worksheets("Sheet1")
Set rng = ws.Range("A:Z")
For Each myVal In rng

If IsNumeric(myVal) = True Then

myVal = myVal.Value / 1000000

Else

Next myVal

End Sub

最佳答案

您目前缺少 End If ,因此您当前的代码根本不会运行。正确缩进您的代码会发现问题。我还建议不要尝试循环当前范围内的所有单元格。请注意,这些是(至少对于 Excel 2019)27.262.976 个单元格要经过(您可能希望首先找到您感兴趣的范围;最后使用的行,最后使用的列)。这么多的电话会非常慢。至少只使用实际数值来限制这些数字。

尝试使用 SpecialCells .工作方式 > <YourRange>.SpecialCells(XlCellType, [XlSpecialCellsValue]) .例如:

Sub Test()

Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Sheet1")

For Each cl In ws.Range("A:Z").SpecialCells(2, 1)
    cl.Value = cl.Value / 1000000
Next

End Sub

地点:.SpecialCells(2, 1)也可以读作 .SpecialCells(xlCellTypeConstants, xlNumbers)
注:如果您有大量包含数值的单元格,循环 Areas 可能会有所帮助。属性而不是 Cells因为您可以将它们加载到数组中并在粘贴回这些值之前在内存中执行计算。这也可以为您节省一些宝贵的运行时间。

关于excel - 如果单元格值为数字,则将单元格区域除以特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61439501/

相关文章:

excel - 从 Excel VBA 执行 Git Bash

javascript - 使用 js-xlsx 解析 Excel 工作表

c# - 使用互操作在 Excel 工作簿中写入长文本会引发错误?

sql - 如何解析数据库中每个单元格的特定值?

c# - C#/.Net 的 Excel XLSTART 问题

excel - VBA 代码。如何遍历一列,找到介于 0.9 和 1 之间的值,然后在这些值的左侧偏移 4 行?

vba - 如何在 PowerPoint VBA 中制作循环?

Excel内部数据库连接

excel - VBA 刷新彭博数据未按正确顺序运行

vba - Excel VBA目标单元格更改然后忽略