我試圖創建一個不同的用戶可以將有不同數量的行鍼對每個用戶的一列執行以下功能的功能的,但我可以不知道如何考慮行數的變化。在列執行VBA函數具有未知數量的行
Function MKT(ByVal Temperatures As Variant) As Double
Dim Sum As Double
Dim TemperatureCount As Long
Dim GasConst As Double
Dim DeltaH As Double
Dim Conv As Double
Conv = 273.15
GasConst = 8.314472
DeltaH = 10 * GasConst
Sum = 0
For TemperatureCount = Temperatures.Cells.Count To 1 Step -1
Sum = Sum + Exp(-DeltaH/(GasConst * (Temperatures(TemperatureCount) + Conv)))
Next TemperatureCount
MKT = (DeltaH/GasConst)/(-Log(Sum/Temperatures.Cells.Count)) - Conv
End Function
的功能的工作原理,如果我所述小區設置值= MKT(A1:A32557),但如果我做= MKT(A:A)。
我認爲這可以幫助,但我不知道如何實現它:
Dim lastRow As Long
lastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
此外,有可能通過1行偏移值要佔一個頭?
UsedRange並不總是最新的;依靠單元格值更安全。理想情況下,你應該有一個列將包含函數應該工作的每一行的值,並且只包含這些行的值;如果不是,只要您還沒有在該表下填充單元格,則End(xlUp)上的一些變體應該可以工作。 – 2011-06-06 18:23:16