|
こんにちは。かみちゃん です。
> strRow = Me.TextBox1
> MsgBox Range(strRow).Rows.Count
>と、することで、テキストボックス1にA1:A100と範囲を打ち込んで、メッセージボックスに99と選択した行の数値が出るようにはなった
メッセージボックスに「99」と表示されましたか?
私は、「100」と表示されるのですが・・・
Keinさんのコードと私のコードは同様のことをしています。
なので、失礼ながら、中途半端に融合されています。
以下のようなコードで十分かと思います。
Private Sub CommandButton1_Click()
' Dim DataRange As String, OutRangeA As String, OutRangeB As String, _
i As Long, x As Long, Mynum As Long, strRow As String
Dim DataRange As String, OutRangeA As String, OutRangeB As String
DataRange = UserForm1.TextBox1.Text
OutRangeA = UserForm1.TextBox2.Text
OutRangeB = UserForm1.TextBox3.Text
Call Calculate(DataRange, OutRangeA, OutRangeB)
Unload UserForm1
' With Me.TextBox1
' strRow = Me.TextBox1
' If .Value = "Range(strRow).Rows.Count" Then Exit Sub
' For i = Len(.Value) To 1 Step -1
' If Not IsNumeric(Mid(.Value, i, 1)) Then
' x = i + 1: Exit For
' End If
' Next i
' If x = 0 Then
' Mynum = CLng(.Value)
' Else
' Mynum = CLng(Mid(.Value, x))
' End If
' End With
End Sub
Sub Calculate(DataRange As String, OutputRangeA As String, OutputRangeB As String)
Dim Std As Single, sigma As Single
Dim RanData As Range
Set RanData = Range(DataRange)
Std = Application.StDev(RanData)
Range(OutputRangeA).Select
Call Output(Std)
' sigma = Std * Sqr(Mynum)
sigma = Std * Sqr(Range(DataRange).Rows.Count)
Range(OutputRangeB).Select
Call Output(sigma)
End Sub
|
|