2010-11-18 23 views
10

incrustado en la hoja de trabajo sheet1 Tengo un cuadro combinado de Control de formulario denominado combobox_test y se ha seleccionado el valor xExcel VBA: Obtención de los valores de controles de formulario

además de eso, también he embbeded un botón que cuando presiono que yo quiero que tome el valor de combobox_test y colocarlo en something.Rows(y). Pero no puedo hacer que funcione y me siento un poco frustrado. Tal vez me puede señalar en la dirección correcta

Sub ButtonPressed_sample() 
    Dim value As String 

    Set putItRng = Range("theCells")   
    putItRng.Rows(1) = ActiveSheet.Shapes("combobox_test").Value   
End Sub 

¿Algún consejo? Soy un principiante absoluto en VBA, así que sea lo más detallado posible. Gracias

+0

qué error se puede conseguir? – Panicos

+0

Error en tiempo de ejecución '438'. El objeto no admite esta propiedad o método ... y muestra la línea 'putItRng.Rows (1) = ActiveSheet.Shapes ("combobox_test"). Valor' – Carlos

Respuesta

6

No estoy seguro de que esto es lo que quiere, pero es un comienzo. El objeto Shape no tiene una propiedad Value, que es la fuente del error. Hay un objeto DropDown que está en desuso, pero todavía está disponible.

Sub ButtonPressed_sample() 

    Set putitrng = Range("theCells") 
    putitrng.Rows(1) = ActiveSheet.DropDowns("combobox_test").value 

End Sub 
+3

, menús desplegables (y ComboBoxes, botones, etc) están en desuso porque si lo desea agrupar varias formas juntos, los controles que se encuentran en los grupos no aparecen en los objetos de colección. así que supongo que este comentario es sólo una precaución de no poner su mando en ningún formas agrupadas, siempre y cuando usted está usando este método (que yo también uso) :) – Alain

1
putItRng.Rows(1)= ActiveSheet.combobox_test.value 

Probar:

activesheet.cells(1,putItRng.column).value=activesheet.combobox_test.value 

Si no trabaja, entonces su cuadro combinado no se nombra "Combobox_test"

+0

todavía da el mismo error, aunque – Carlos

+0

Debe hacer referencia por ActiveWorkbook .Activesheet (porque varios libros de trabajo tienen cada uno Acticsheet). Las filas (1) le dan el rango completo de todas las columnas en la fila 1 ... Vaya paso a paso en esto. Intente encontrar la fuente real del problema utilizando dos Msgbox, uno para el lado izquierdo y el otro para el lado derecho de la tarea sugerida anteriormente. Eso determinará mejor cuál es el problema. Supongo que tu nombre de objeto es incorrecto. Nota – jpinto3912

8
Sub QuickSelect_Change() 
     With ActiveSheet.Shapes("QuickBox") 
      MsgBox "My Selected Value " & .ControlFormat.List(.ControlFormat.ListIndex) 
     End With 
    End Sub 
3
ActiveSheet.Shapes("combobox_test").ControlFormat.ListIndex 
+0

Si bien esto puede responder a la pregunta, que sería mejor para explicar por qué es la solución correcta. El –

+0

con más votos referencias respuesta la colección de menús desplegables, pero Alain mencionado que esta desfasada porque "si lo desea agrupar varias formas juntos, los controles que se encuentran en los grupos no aparecen en los objetos de colección". La colección de formas es otro medio para hacer referencia a un control de formulario de combobox, pero la publicación de Carlos no funcionó para mí. – rdg515

+0

Sólo traté 'ActiveSheet.Shapes ("combobox_test"). ControlFormat.Value' y encontró que consiguió el mismo resultado. Algunos escenarios pueden encontrar que este es un estilo de codificación más apropiado. –

Cuestiones relacionadas