steveyeung
Civil/Environmental
- Sep 5, 2004
- 76
I've done a set of codes or a function, see below) which will be recalled to to do a simple task.
However, I found the function only "recalculates/runs" when the (contents of) arguments have been chnages "directly". As this function is called and appears in a worksheet where the users cannot work on it, this function never works at all..........
Are there any methods to make it run when the users press "enter" while working on other worksheets??
Thanks!!
'Looking for the dimensions based on the section unders consideration
Function SectionDim(SectionConsidered As Single, Element As String) As Single
Dim I As Integer, K As Integer, Row_No As Integer
Dim LowerBound As Single
Dim Flag As String, Flag_Length As String
'Assign dimension to the corresponding section under consideration
With Worksheets("Input_Data")
Flag_Length = Len(Element)
For K = 17 To 66
If Element = .Cells(K, 6).Value Then
Row_No = K
Flag_Length = Len(.Cells(Row_No, 6).Value)
End If
Next K
LowerBound = 0
If Flag_Length = 1 Then
I = 10
Do
If SectionConsidered > LowerBound And SectionConsidered < .Cells(Row_No + 2, I).Value Then
SectionDim = .Cells(Row_No, I).Value
Exit Do
Else
LowerBound = .Cells(Row_No + 2, I).Value
I = I + 1
End If
Loop Until I = 109 Or .Cells(Row_No, I).Value = " " Or .Cells(Row_No, I).Value = 0
Else
I = 10
Do
If SectionConsidered > LowerBound And SectionConsidered < .Cells(Row_No + 1, I).Value Then
SectionDim = .Cells(Row_No, I).Value
Exit Do
Else
LowerBound = .Cells(Row + 1, I).Value
I = I + 1
End If
Loop Until I = 109 Or .Cells(Row_No, I).Value = " " Or .Cells(Row_No, I).Value = 0
End If
End With
End Function
However, I found the function only "recalculates/runs" when the (contents of) arguments have been chnages "directly". As this function is called and appears in a worksheet where the users cannot work on it, this function never works at all..........
Are there any methods to make it run when the users press "enter" while working on other worksheets??
Thanks!!
'Looking for the dimensions based on the section unders consideration
Function SectionDim(SectionConsidered As Single, Element As String) As Single
Dim I As Integer, K As Integer, Row_No As Integer
Dim LowerBound As Single
Dim Flag As String, Flag_Length As String
'Assign dimension to the corresponding section under consideration
With Worksheets("Input_Data")
Flag_Length = Len(Element)
For K = 17 To 66
If Element = .Cells(K, 6).Value Then
Row_No = K
Flag_Length = Len(.Cells(Row_No, 6).Value)
End If
Next K
LowerBound = 0
If Flag_Length = 1 Then
I = 10
Do
If SectionConsidered > LowerBound And SectionConsidered < .Cells(Row_No + 2, I).Value Then
SectionDim = .Cells(Row_No, I).Value
Exit Do
Else
LowerBound = .Cells(Row_No + 2, I).Value
I = I + 1
End If
Loop Until I = 109 Or .Cells(Row_No, I).Value = " " Or .Cells(Row_No, I).Value = 0
Else
I = 10
Do
If SectionConsidered > LowerBound And SectionConsidered < .Cells(Row_No + 1, I).Value Then
SectionDim = .Cells(Row_No, I).Value
Exit Do
Else
LowerBound = .Cells(Row + 1, I).Value
I = I + 1
End If
Loop Until I = 109 Or .Cells(Row_No, I).Value = " " Or .Cells(Row_No, I).Value = 0
End If
End With
End Function