2012-02-01 3 views
0

Я задал подобный вопрос Here и теперь мне нужно сделать то же самое еще раз, но на этот раз с помощью VBA в Excel 2010.Как я могу динамически построить ссылку на объект текстового поля?

По существу у меня есть многочисленные текстовые поля с родовыми именами (т.е. TextBox1, TextBox2 и т.д.). Как я могу программно построить ссылку на объект, чтобы создать цикл?

EDIT: Это обычный текстовый блок на листе. Когда я начинаю саб для этого листа я могу ссылаться на текстовых полях с помощью следующей строки:

TextBox1.LinkedCell = "B2" 
+0

Какие типы текстовых полей (forms/activeX) и находятся они на листе или форме? –

ответ

0

Это то, что ваш после:

Dim oleObj As OLEObject 
'Dim oleTxtBox As TextBox 

For Each oleObj In Sheet1.OLEObjects 
    If oleObj.OLEType = xlOLEControl Then 
     If Mid(oleObj.progID, 1, 14) = "Forms.TextBox." Then 
      Set oleTxtBox = oleObj.Object 
      oleTxtBox.PasswordChar = "*" 
     End If 
    End If 
Next 

Только с помощью PasswordChar в качестве примера поля от TextBox объекта, но это на самом деле не оставило меня Dim как TextBox

+0

Это сработало спасибо. Мне пришлось изменить Set oleTxtBox = oleObj.Object для установки oleTxtBox = oleObj только fyi. – Bryan