2016-05-21 3 views
0

У меня есть около 50 флажков, которые все связаны с ячейкой, на которой они расположены (например, флажок в A2 связан с ячейкой A2). У меня петля работает до некоторой степени. Проблема, с которой я сталкиваюсь, - это сделать связанную ячейку выбранной и смещение на 1 ячейку, а затем скопировать строку, оставляющую связанную ячейку. затем вставляет в другой рабочий лист следующую строку.ActiveX checkbox loop - выбирает смещение смежных ячеек, затем копирует строку

Sub CheckboxLoop() 
Dim objx As OLEObject 
Dim lastrow As Range 

Application.ScreenUpdating = False 

'Loop through Checkboxes 
With ActiveSheet 
    For Each objx In .OLEObjects 
     If TypeName(objx.Object) = "CheckBox" Then 
      If objx.Object.Value = True Then 
       If objx.Object.LinkedCell = True Then 'runtime error 438 object doesn't support this property or method 
        objx.Object.LinkedCell.Offset(0, 1).Select 
        Range(Cells(Selection.Row, 1), Cells(Selection.Row, 3)).Select 
        Selection.Copy 
        Worksheet("Data").Select 
        Worksheet("Data").Range("A1").End(xlDown).Offset(1, 0).Select 
        Selection.PasteSpecial (xlPasteValues) 
        Application.CutCopyMode = False 

       End If 

      ElseIf objx.Object.Value = False Then 


      ElseIf IsNull(objx.Object.Value) Then 


      End If 
     End If 
    Next 
End With 
Application.ScreenUpdating = True 
End Sub 

Когда я пошагово макроса все хорошо, пока я не дойдете до 3, если и я получаю сообщение об ошибке выполнения 438 Объект не поддерживает это свойство или метод

Любая помощь будет удивительным спасибо

ответ

1

LinkedCell свойство имеет String типа и магазины/извлекает адрес ячейки, связанный с комбобоксом

Так что вы хотите использовать

  If objx.LinkedCell <>"" Then 
      .Range(objx.LinkedCell).Offset(0, 1).Select 
      '... rest of your code 

     End If 
+0

спасибо, но у него все еще есть ошибка времени выполнения с этой строкой. Если objx.Object.LinkedCell <> "" Then – Drag00n

+0

Спасибо, что сработал ... один раз lol. но в любом случае. теперь его ошибка 1004 времени выполнения с рабочими листами («данные»). Диапазон («A1»). End (xlDown) .Offset (1, 0). Выберите – Drag00n

+0

Если я заполнил ваш первоначальный вопрос, пожалуйста, отметьте мой ответ как принятый. Спасибо. Что касается вашей новой проблемы, начните новый вопрос – user3598756

Смежные вопросы