[英]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.