2015-01-18 4 views
0

Я искал тщательно через Интернет и сайт Stackoverflow без успеха. Я застрял в проблеме в течение недели, и я не могу сделать головы или хвосты.Как checkboxes обрабатываются в VBA Excel 2011 для Mac

Я изучаю VBA и мой справочник дает следующий пример:

Private Sub CommandButtons() 
Dim intcounter As Integer, xObj As OLEObject 
Dim strObj As String 
intcounter = 0 
strObj = "" 

For Each xObj In ActiveSheet.OLEObjects 
If TypeName(xObj.Object) = "CheckBox" Then 
If xObj.Object.Value = True Then 
intcounter = intcounter + 1 
strObj = strObj & xObj.Object.Caption & Chr(10) 
End If 
End If 

Next xObj 

If intcounter = 0 Then 
MsgBox "There were no CheckBoxes selected", , "No Sport" 
Else 
MsgBox _ 
"you selected" & intcounter & "checkboxes:" _ 
& vbCrLf & vbCrLf & _ 
strObj, , "Here is what you checked" 
End If 

End Sub 

К сожалению, этот код не работает. Он должен оценивать каждый внедренный проект на рабочем листе. Когда код попадает в ActiveX CheckBox, он должен определить, проверяется ли CheckBox. В конце процедуры появится MsgBox, подтверждающая, сколько (если есть) CheckBox было проверено и их подпись.

Может ли кто-нибудь помочь мне с этим? Даже ссылка была бы более чем приветствуется.

Заранее благодарю вас за помощь.

+0

Привет, в чем проблема с кодом? Не могли бы вы обновить свой вопрос, включив в него какие-либо ошибки/в какой строке они происходят? – Gareth

+0

Привет, Гарет, спасибо за ваш интерес. Сообщения об ошибках отсутствуют. Просто код не работает должным образом. Он возвращает MsgBox, где флажки не отмечены, но они отмечены на самом деле ... – SLuca

+0

Элементы ActiveX не могут использоваться на Mac. –

ответ

0

Вам нужно изменить, если условие:

= "CheckBox" 

У вас есть пространство между вот почему.

Просто расширить (отвечал, что на мобильном телефоне):

TypeName функция возвращает имя объекта и при использовании в случае состояния, должно быть передано в случае чувствительной и правильно усадебного. В вашем случае вам необходимо использовать:

If TypeName(xObj.Object) = "CheckBox" Then 
+0

Я пробовал исправление, но он все еще дает неправильный MsgBox ... это сводит меня с ума ... Я проверил свойства флажков, и они есть флажки. – SLuca