Jack-tek460 Ответов: 2

VB sum проверил текстовые поля в 4 строки и разделил их на количество проверенных


Привет,
В моем приложении у меня есть 4 строки, и каждая строка содержит 1 флажок и 3 текстовых поля. То, что я пытаюсь сделать, - это добавить значение первой проверенной строки (для каждого столбца отдельно) с другими проверенными строками. Затем подсчитайте, сколько ящиков было проверено, и разделите сумму на эту сумму (среднее значение)

Row1 --- |    cb1=__checked    |    tb01=12    |    tb02=3   |    tb03=4.25    | 
Row2 --- |    cb2=__checked    |    tb04=14    |    tb05=5   |    tb06=1.75    | 
Row3 --- |    cb3=unchecked   |    tb07=19    |    tb08=9   |    tb09=1.25    | 
Row4 --- |    cb4=__checked   |    tb10=24    |    tb11=1   |    tb12=3.50    | 
__________________________________________________________________
Button1  |       tb13=3       |    tb14=50    |    tb15=9   |    tb16=9.50    |
__________________(tb14 / tb13)__________________________________


Теперь я хочу разделить только результат первого столбца (tb14) на количество флажков (tb13), так что результаты, которые я ищу, следующие;

1-я колонка: tb14 / tb13 = 16,67
2-й столбец: tb15 = 9
3-я колонка: tb16 = 9.50

Я новичок, и последние несколько дней ...и ночей я усиленно чесал голову
Заранее благодарю вас за любую помощь, которую вы можете оказать.

Я не знаю, если это способ, чтобы начать с…
Это только для первой колонки!

Dim col1 As String

Dim tb01, tb04, tb07, tb10 As Decimal

Tb01 = TextBox01.Text
Tb03 = TextBox04.Text
Tb07 = TextBox07.Text
Tb10 = TextBox10.Text

If CheckBox1.Checked Then
    col1 = col1 & tb01
End If

If CheckBox2.Checked Then
    col1 = col1 & tb04
End If

If CheckBox3.Checked Then
    col1 = col1 & tb07
End If

If CheckBox4.Checked Then
    col1 = col1 & tb10
End If

‘…and just for testing to see my results…

MessageBox.Show(col1)


они являются; (121424) 12, 14 и 24

Я Сток здесь

Maciej Los

Кажется, я уже видел это раньше...

Jack-tek460

Ладно, пошли немного дальше.

Теперь у меня есть все результаты, которые мне нужны, и остается только один вопрос:Как получить количество флажков? (из моего примера выше число равно " 3”)

2 Ответов

Рейтинг:
5

Jack-tek460

Dim col1 As Long
 
Dim tb01, tb04, tb07, tb10 As Decimal
 
Tb01 = Val(TextBox01.Text)
Tb03 = Val(TextBox04.Text)
Tb07 = Val(TextBox07.Text)
Tb10 = Val(TextBox10.Text)
 
Dim checked01 As Decimal
Dim checked04 As Decimal
Dim checked07 As Decimal
Dim checked10 As Decimal

If CheckBox1.Checked Then
    Checked01 = 1
    col1 = col1 & tb01
ElseIf CheckBox1.Checked = False Then
    Checked01 = 0
End If

If CheckBox2.Checked Then
    Checked04 = 1
    col1 = col1 & tb04
ElseIf CheckBox2.Checked = False Then
    Checked04 = 0
End If

If CheckBox3.Checked Then
    Checked07 = 1
    col1 = col1 & tb07
ElseIf CheckBox3.Checked = False Then
    Checked07 = 0
End If 

If CheckBox4.Checked Then
    Checked10 = 1
    col1 = col1 & tb10
ElseIf CheckBox4.Checked = False Then
    Checked10 = 0
End If 

Dim checkedcol1_01 As Decimal = checked01
Dim checkedcol1_04 As Decimal = checked04
Dim checkedcol1_07 As Decimal = checked07
Dim checkedcol1_10 As Decimal = checked10

Dim checkedsum As Decimal = Val(checkedcol1_01 + checkedcol1_04 + checkedcol1_07 + checkedcol1_10)


MessageBox.Show (checkedsum & " boxes were checked! ...just for my reference")


Dim col1row1 As Decimal
Dim col1row2 As Decimal
Dim col1row3 As Decimal
Dim col1row4 As Decimal

If CheckBox1.Checked Then
    col1row1 = (col1 And tb01) - col1 + tb01
ElseIf CheckBox1.Checked = False Then
    col1row1 = 0
End If

If CheckBox2.Checked Then
    col1row2 = (col1 And tb04) - col1 + tb04
ElseIf CheckBox2.Checked = False Then
    col1row2 = 0
End If

If CheckBox3.Checked Then
    col1row3 = (col1 And tb07) - col1 + tb07
ElseIf CheckBox3.Checked = False Then
    col1row3 = 0
End If

If CheckBox4.Checked Then
    col1row4 = (col1 And tb10) - col1 + tb10
ElseIf CheckBox4.Checked = False Then
    col1row4 = 0
End If

If CheckBox1.CheckState = CheckState.Unchecked And CheckBox2.CheckState = CheckState.Unchecked And CheckBox3.CheckState = CheckState.Unchecked And CheckBox4.CheckState = CheckState.Unchecked Then
    MsgBox("Please select at least one check box!", vbExclamation, "Error!")
    Exit Sub
End If
        
Dim finalResults_col1 As Decimal = Val(col1row1 + col1row2 + col1row3 + col1row4) / checkedsum


MessageBox.Show(finalResults_col1 & " is a final value for column 1")


Рейтинг:
14

Jack-tek460

Dim col1 As String
 
Dim tb01, tb04, tb07, tb10 As Decimal
 
Tb01 = Val(TextBox01.Text)
Tb03 = Val(TextBox04.Text)
Tb07 = Val(TextBox07.Text)
Tb10 = Val(TextBox10.Text)
 
If CheckBox1.Checked Then
    col1 = col1 & tb01
End If
 
If CheckBox2.Checked Then
    col1 = col1 & tb04
End If
 
If CheckBox3.Checked Then
    col1 = col1 & tb07
End If
 
If CheckBox4.Checked Then
    col1 = col1 & tb10
End If

Dim col1row1 As String = col1 & tb01
Dim col1row2 As String = col1 & tb04
Dim col1row3 As String = col1 & tb07
Dim col1row4 As String = col1 & tb10
        
‘…and just for testing to see my results…
 
MessageBox.Show(col1row1)
MessageBox.Show(col1row2)
MessageBox.Show(col1row3)
MessageBox.Show(col1row4)


Jack-tek460

Я все уже придумал! Этот код может показаться” неправильным " для продвинутых программистов, но он работает для меня, и я надеюсь, что он кому-то поможет.

Я обновлю новый код через несколько минут… Я должен изменить имена текстовых полей моей программы, флажков и некоторых других вещей на то, что я разместил здесь.