使用按钮从列表框中获取所选值

时间:2015-06-18 16:17:49

标签: excel vba excel-vba listbox

我有一个宏,可以从一个工作簿创建一个Button和listbox。我在按钮中添加了一个函数,以便使用从列表框中选择的项目填充新创建的工作簿表单中的单元格。不幸的是,我一直在获取一个对象变量或者没有设置块变量。但是因为我已经设定了这个,所以不可能。我也尝试在sub之外创建变量,以使它们全局但没有运气,任何帮助都将非常感激!这是我的代码: 请记住,这一切都在工作簿A中完成,按钮和列表框已添加到工作簿B

Public drpdwn As ListBox

Public sub WorkbookCreate()
...some code
 Set drpdwn = NewBook.Sheets("sheet1").ListBoxes.Add(150, 1, 100, 50)
  With drpdwn
 .AddItem "Paris"
 .AddItem "New York"
 .AddItem "London"
 .name = "drpdwn"
 End With
 Set btn = NewBook.Sheets("sheet1").Buttons.Add(49, 1, 60, 15)
 With btn
    .OnAction = "Findcity"
    .Caption = "Find"
    .name = "Find"
End With
End sub

'Function to obtain city selected
Function Findcity()
MsgBox ("clicked")
Dim i As Integer
For i = 0 To drpdwn.ListCount - 1
    If drpdwn.Selected(i) Then ActiveWorkbook.Sheets("sheet1").Cells(1, 1).Value = drpdwn.List(i)
Next i
End Function

1 个答案:

答案 0 :(得分:0)

我想出了我的问题,问题是我将变量drpdwn设置为等于newbook.sheets。因为当我点击新页面上的按钮时,它试图找到这本新书,但它应该是activeworkbook,因为我现在正在使用它。 谢谢你的帮助!