[英]How do I run the same macro, VBA-code for 30 different excel workbooks?
[英]Why do i get different output when i used the same code, same data but different laptops for vba?
当单元格位于标题“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
@ScottCraner 提供的答案,但发布以供将来参考。
改变
.Evaluate("=abs(" & rngToAbs.Address & ")")
到
.Evaluate("=INDEX(abs(" & rngToAbs.Address & "),)")
当前版本有效,因为如果您有最新版本的 Excel,公式将作为数组公式求值。
旧版本的 Excel 需要添加INDEX
来评估范围内每个单元格的 ABS。
在原始问题中也添加了此评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.