我正在尝试对已经完成一个星期的代码使用另一种方法。
我的目标是创建一个函数,其输入为特定的工作表。然后,我想在此工作表的第11行中找到所有介于-100和100之间的值。然后,我想将这些值分配给数组。最后,我希望函数的输出为这些数字之间的最小值。
任何帮助将不胜感激。
这是我到目前为止的代码,但是由于某种原因,它仅返回值100。
Function Loss(worksheet1 As Worksheet) As Double
Dim min As Double
Dim i As Integer
Dim myRight As Long, Colcount As Long
min = 100
With worksheet1
myRight = .Cells(1, .Columns.Count).End(xlToLeft).Column
For Colcount = 4 To myRight
If (.Cells(11, Colcount).Value < min) And (Abs(.Cells(11, Colcount).Value) <= 100) Then
min = .Cells(11, Colcount).Value
End If
Next Colcount
End With
Loss = min
End Function```
答案 0 :(得分:2)
传递您要处理的整个范围,而不是传递工作表的名称。
Option Explicit
Function Loss(sRng As Range)
Dim aCell As Range, minVal As Double,colNum as Long
minVal = 100
colNum = 0
For Each aCell In sRng
If IsNumeric(aCell.Value) Then
If aCell.Value < minVal And Abs(aCell.Value) <= 100 Then
minVal = aCell.Value
colNum = aCell.Column
End if
End If
Next aCell
Loss = minVal
End Function