2010-11-18 37 views
10

nhúng trong bảng sheet1 Tôi có một combo box Form Control tên combobox_test và nó đã chọn giá trị xExcel VBA: Lấy giá trị từ Form Controls

thêm vào đó, tôi cũng đã embbeded một nút mà khi tôi nhấn nó tôi muốn nó lấy giá trị combobox_test và đặt nó vào something.Rows(y). Nhưng tôi không thể làm cho nó hoạt động và nhận được một chút thất vọng. Có thể bạn có thể chỉ cho tôi đúng hướng

Sub ButtonPressed_sample() 
    Dim value As String 

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

Bất kỳ lời khuyên nào? Là một người mới bắt đầu tuyệt đối trong VBA, vì vậy hãy làm chi tiết nhất có thể. Cảm ơn

+0

gì lỗi nào bạn nhận được? – Panicos

+0

Lỗi thời gian chạy '438'. Đối tượng không hỗ trợ thuộc tính hoặc phương thức này ... và nó hiển thị dòng 'putItRng.Rows (1) = ActiveSheet.Shapes ("combobox_test"). Value' – Carlos

Trả lời

6

Tôi không chắc chắn đây là những gì bạn muốn, nhưng đó là một sự khởi đầu. Đối tượng Shape không có thuộc tính Value, là nguồn của lỗi. Có một đối tượng DropDown không được chấp nhận, nhưng vẫn có sẵn.

Sub ButtonPressed_sample() 

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

End Sub 
+3

Lưu ý, DropDowns (và ComboBoxes, Buttons, vv) không được chấp nhận vì nếu bạn chọn nhóm nhiều hình lại với nhau, các điều khiển nằm trong các nhóm sẽ không xuất hiện trong các đối tượng bộ sưu tập đó. Vì vậy, tôi đoán nhận xét này chỉ là một sự thận trọng không đặt quyền kiểm soát của bạn vào bất kỳ hình dạng được nhóm nào miễn là bạn đang sử dụng phương pháp này (bản thân tôi cũng sử dụng) :) – Alain

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

Hãy thử:

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

Nếu nó không làm việc thì combobox của bạn không được đặt tên là "Combobox_test"

+0

nó vẫn cho lỗi tương tự mặc dù – Carlos

+0

Bạn phải tham chiếu bởi ActiveWorkbook .Activesheet (vì nhiều sách bài tập có một Activesheet). Hàng (1) cung cấp cho bạn toàn bộ phạm vi của tất cả các cột trong hàng 1 ... Đi từng bước về điều này. Hãy thử tìm nguồn thực sự của vấn đề bằng cách sử dụng hai Msgbox, một cho phía bên trái, một cho phía bên phải của bài tập được đề xuất ở trên. Điều đó sẽ xác định tốt hơn vấn đề là gì. Tôi đoán việc đặt tên đối tượng của bạn là sai. – 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

Trong khi điều này có thể trả lời câu hỏi, nó sẽ tốt hơn để giải thích tại sao nó là giải pháp đúng. –

+0

Câu trả lời bình chọn cao nhất tham khảo bộ sưu tập DropDowns, nhưng Alain đã đề cập rằng điều này không được chấp nhận vì "nếu bạn chọn nhóm nhiều hình lại với nhau, các điều khiển nằm trong nhóm sẽ không xuất hiện trong các đối tượng thu thập". Bộ sưu tập hình dạng là một phương tiện khác để tham chiếu đến một điều khiển biểu mẫu combobox, nhưng bài viết Carlos đã không làm việc cho tôi. – rdg515

+0

Tôi vừa thử 'ActiveSheet.Shapes (" combobox_test "). ControlFormat.Value' và thấy nó có cùng kết quả. Một số trường hợp có thể thấy đây là kiểu mã hóa thích hợp hơn. –

Các vấn đề liên quan