cen*_*ena 3 excel vba excel-formula
当单元格低于标题“Vbd”时,我试图将整列单元格设为绝对值,我遇到了这个问题:当我在不同的笔记本电脑上使用相同的代码和相同的数据时(一个是 excel 2010,另一个是 excel 2016),它给出了不同的输出。例如:
在我按下代码之前,它是这样的。用带有 excel 2010 的笔记本电脑按下它后,它给出了这个输出:
但是,当我使用具有 excel 2016 的笔记本电脑时,它为我提供了理想的输出,如下所示:
问题是我对这两台笔记本电脑使用了相同的数据和相同的代码(我已经多次检查代码和数据是否相同)并且我非常困惑为什么输出不同。下面是我的代码,可以在此处找到工作簿。(保管箱)
Option Explicit
Sub testing1()
Dim i As Long
Dim LastColumn As Long
Dim sht As Worksheet
Dim rngToAbs As Range
Dim lastrow As Long
Set sht = ThisWorkbook.Sheets("Sheet1")
LastColumn = sht.Cells(1, sht.Columns.Count).End(xlToLeft).Column
lastrow = sht.Cells(sht.Rows.Count, "D").End(xlUp).Row
For i = 1 To LastColumn
With sht
If sht.Cells(1, i).Value = "Vbd" Then
Set rngToAbs = .Range(sht.Cells(2, i), sht.Cells(lastrow, i))
rngToAbs.Value = .Evaluate("=abs(" & rngToAbs.Address & ")")
End If
End With
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
@ScottCraner 提供的答案,但张贴以供将来参考。
改变
.Evaluate("=abs(" & rngToAbs.Address & ")")
Run Code Online (Sandbox Code Playgroud)
到
.Evaluate("=INDEX(abs(" & rngToAbs.Address & "),)")
Run Code Online (Sandbox Code Playgroud)
如果您拥有最新版本的 Excel,则当前版本有效,因为该公式被评估为数组公式。
INDEX旧版本的 Excel 需要添加来评估区域中每个单元格的 ABS。
在原始问题中也添加了此评论。
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |