Страницы: 1
RSS
вывод значений Checkbox в свободные ячейки
 
Добрый день!  
еще зелен в VBA...  
Хочу сделать, чтобы из формы при выборе ChekcBox... данный выводились в свободную! ячейку С6  и далеее  
 
Dim ArrName(1 To 5) As Boolean  
Dim n As Integer  
 
ArrName(1) = CheckBox1 ' Checkbox1.Caption = "Пятак 1"  
ArrName(2) = CheckBox2 ' Checkbox1.Caption = "Пятак 2"  
ArrName(3) = CheckBox3 ' Checkbox1.Caption = "Пятак 3"    
ArrName(4) = CheckBox4 ' Checkbox1.Caption = "Пятак 4"  
ArrName(5) = ChechBox5 ' Checkbox1.Caption = "Пятак 5"  
   
For j = 1 To 5  
   If ArrName(j) = True Then  
   '!!!!! Не знаю как это сделать правильно!!!  
   'Хочу, чтобы проверял на наличие пустых ячеек с "С5"  
   '  
   'n = Range("C5").CurrentRegion.Rows.Count  
   'Cells(n + 1, 1).Value = "1"    
   Beep  
   End If  
Next j
 
Так проще:  
 
Private Sub CommandButton1_Click()  
   ArrName = Array(CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5)  
 
   For Each Item In ArrName  
       If Item Then Range("C65536").End(xlUp).Offset(1) = 1: Beep  
   Next  
End Sub
 
Так что-ли нужно?  
 
For j = 1 To 5  
   If ArrName(j) = True Then  
   n = Range("C5").CurrentRegion.Rows.Count  
   Cells(5 + n, 3).Value = "1"  
   Beep  
   End If  
Next j  
 
Только есть описка в коде: ArrName(5) = ChechBox5
 
Кстати, Option Explicit в начале кода сразу эту описку выявляет.
 
EducatedFool, Hugo спасибо большое!  
Но я не отстану =)  
в свободные ячейки я хочу, чтобы не просто "1" водилась а вводилось Caption выбранного ChekBox  
думал сделать так (извините за мой синтаксис):  
 
Dim n As Integer    
Dim ArrName(1 To 5) As CheckBox  
 
Set ArrName(1) = CheckBox1.Value    
Set ArrName(2) = CheckBox2.Value  
Set ArrName(3) = CheckBox3.Value    
Set ArrName(4) = CheckBox4.Value  
Set ArrName(5) = CheckBox5.Value  
 
For j = 1 To 5  
If ArrName(j).Value = 1  Then  
n = Range("C5").CurrentRegion.Rows.Count  
Cells(5+n, 1).Value = ArrName(j).Caption  
Beep  
End If  
Next j
 
Такой вариант:  
 
Option Explicit  
Private Sub CommandButton1_Click()  
Dim ArrName(1 To 5, 1 To 2)  
Dim j As Byte  
Dim n As Long  
 
ArrName(1, 1) = CheckBox1.Caption: ArrName(1, 2) = CheckBox1  
ArrName(2, 1) = CheckBox2.Caption: ArrName(2, 2) = CheckBox2  
ArrName(3, 1) = CheckBox3.Caption: ArrName(3, 2) = CheckBox3  
ArrName(4, 1) = CheckBox4.Caption: ArrName(4, 2) = CheckBox4  
ArrName(5, 1) = CheckBox5.Caption: ArrName(5, 2) = CheckBox5  
   
For j = 1 To 5  
   If ArrName(j, 2) = True Then  
   n = Range("C5").CurrentRegion.Rows.Count  
   Cells(5 + n, 3).Value = ArrName(j, 1) ' "1"  
   Beep  
   End If  
Next j  
 
End Sub
 
А я опять со своим вариантом))  
(добавил одно слово в коде)  
 
 
Private Sub CommandButton1_Click()  
   ArrName = Array(CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5)  
 
   For Each Item In ArrName  
       If Item Then Range("C65536").End(xlUp).Offset(1) = Item.Caption: Beep  
   Next  
End Sub
Страницы: 1
Читают тему
Наверх