Tag: listbox

如何在Excel VBA中声明和设置ListBoxvariables?

在Excel中从模块(而不是工作表或表单)中寻找任何有关如何在工作表中引用列表框的信息(使用MS Forms引用)。 Dim lb As MSForms.ListBox Dim chartSheet as worksheet Set chartSheet = Sheets("Chart") Set lb = chartSheet.Objects("lbPartNo") ' nope Set lb = chartSheet.ListObjects("lbPartNo") ' nope Set lb = chartSheet.ListBoxes("lbPartNo") ' nope 有任何想法吗? 谢谢

列表框没有在excel vba中正确返回数据

我有一个用户窗体中有13个选项的列表框,类似于: 我要做的是,当一个项目被选中时,它会返回一个特定的结果。 我的意思是:鸡腿是'a',金块='b',汉堡='c'等等。 这是我提出的代码: Private Sub CommandButton1_Click() Dim lItem As Long For lItem = 0 To ListBox1.ListCount – 1 If ListBox1.Selected(lItem) = 0 Then Worksheets(3).Range("E1").Value = "a" ElseIf ListBox1.Selected(lItem) = 1 Then Worksheets(3).Range("E1").Value = "b" ElseIf ListBox1.Selected(lItem) = 2 Then Worksheets(3).Range("E1").Value = "c" ElseIf ListBox1.Selected(lItem) = 3 Then Worksheets(3).Range("E1").Value = "d" ElseIf ListBox1.Selected(lItem) = 4 […]

VBA列表中的多列列表框

我有一个有两张表的电子表格,我们称之为表A和表B. 从表A中,我单击一个button,它将打开一个带有列表框的窗体。 工作表B有10列数据。 我想select其中的3列内容,(A,B,F)。 并显示他们在这一个列表框中不同的列,但它只是不工作,不能find正确的方法来做到这一点.. 这是我迄今为止: 混帐://gist.github.com/4131461.git 所以最后,我想要一个3列的列表框,每个列从3列的1-10范围。 我刚开始做VBA,我不知道如何做到这一点.. 帮帮我?

Excel VBA – 如何从variables范围填充列表框的值?

我在名为“电子邮件”的工作表中的列A中有一个名称列表 我想填充名为列A的用户窗体ListBox。但是,我不能指定一个固定的范围,因为这个列表会增长和缩小。 那么如何让用户窗体使用正确数量的项目来填充列表呢? 这是我目前正在尝试,但没有工作(我敢肯定这将是明显的一些人在这里为什么不),我也看到了另一个例子,使用一个简单的For循环,但我无法再次find例子给你看。 Private Sub UserForm_Initialize() Dim rngName As Range Dim rng1 As Range Dim rng2 As Range Dim ws As Worksheet Set ws = Worksheets("Email") Set rngName = ws.Range("A:A").Find(What:="*", LookAt:=xlWhole, MatchCase:=False, SearchOrder:=xlByRows, SearchDirection:=xlPrevious) Set rng1 = ws.Range("A1") On Error GoTo ErrorHandle Me.lbUsed.List = Range(rng1 & ":" & rngName).Value ErrorHandle: End Sub 编辑: 我现在有下面的代码,但是当我加载用户表单时失败了: […]

如何在多列列表框中获取选定的值

我在我的用户表单中有一个多列列表框,我想要获取列表框中所选行中元素的所有值。 这是我的用户表单: 就像在照片中,我想select一行,然后点击buttonAssocier ,我可以得到这一行的信息。 我可以得到CAN20168301436的第一列我想从整个行中获取信息。 我该怎么做? 这是我点击button的事件: Private Sub CommandButton3_Click() a = ListBoxResultatFind.Text End Sub

VBA列表框拖放

我试图在VBA中产生一个拖放function,以允许用户在用户窗体上的列表框之间移动项目。 我遇到的问题是,当您单击鼠标button并移动鼠标,列表框select向上和向下移动列表。 我已经设法写了一些行来捕获select,当你按下鼠标button,所以当你把它拖到另一个ListBox正确的项目被删除,但我觉得移动突出显示第一个ListBox的select可能是closures的投放给最终用户。 每次在MouseMove事件上移动鼠标时,我都尝试将select项设置为原始项目,但是当光标与列表中的项目一致时,它根本不起作用,但当您将光标移动到下方时它会反弹回来列表。 这里是macros观工作簿(Excel 2010)的副本 任何人都可以点亮一下这个如何改进? 编辑注意:这个例子只会将左边的项目添加到右边,我打算在多个ListBox中复制用户窗体中find的任何解决scheme,所以我希望有人知道有一个好的机制来实现这一点。

用户窗体百分比列表框?

我在一个用户窗体中使用一个列表框,它显示一个格式为百分比的列中的唯一值。 我通过使用字典对象生成一个唯一的列表/值,并将其提供给一个列表框。 我的问题是所有的值都显示为列表框中的十进制数字而不是百分比。 任何想法如何以百分比/格式显示他们? 参考:列表框值可以改变取决于用户select文本/数字/date/货币/百分比 唯一的列表代码 Sub UniqData(fString As String, cbNr As Integer) ' fString as string Dim d As Object With Sheets("xxx") cNr = WorksheetFunction.Match(fString, .Rows(1), 0) lRo = .Cells(Rows.Count, 1).End(xlUp).Row arrD = .Range(.Cells(2, cNr), .Cells(lRo, cNr)) Set d = CreateObject("scripting.dictionary") For Each c In arrD If Len(c) > 0 Then d00 = dic.Item(c.Text) […]

VBA列表框按索引select工作表

我有一个带有列表框的表单,它dynamic地提供当前工作簿(下面的代码)中的工作表列表。 我希望在选定的工作表中参考,并在稍后的公式中参考它。 从几个小时的玩耍,我似乎无法完成这一点。 我相信我读过的地方,你不能把string回到子,并使用它来引用一个对象。 所以我想也许我可以创build两个列表框 为表名称 为图表索引 我可以通过索引号,并可能在我的公式中使用它来查找正确的工作表中的项目。 对于我的生活,我似乎无法find一种连接两者的方式,因为这些项目总是在变化。 该代码将由多个运营商在多个工作簿上运行,因此布局很可能会在用户之间发生变化。 我可以很容易地添加索引#的第二个列表框,但我有一个关于如何将名称,将有意义的用户和我可以传回给子索引块。 我意识到列表框中的“点击”过程将两者联系起来,但是与字段的dynamic特性相关,我不能拿出把它放到代码中的逻辑。 For N = 1 To ActiveWorkbook.Sheets.Count With ListBox1 .AddItem ActiveWorkbook.Sheets(N).Name End With Next N

VBA:macros正在运行时禁用列表框

问题 我有一个macros(我将它称为launch_macro ),这是通过双击用户窗体列表框( ListBox1_DblClick )中启动。 我的问题是,如果用户在macros仍在运行时再次双击,macros将在第一次执行完成后立即重新启动,无论我在macros运行时是否禁用了ListBox。 代码和testing Private sub ListBox1_DblClick(Byval Cancel as MSForms.ReturnBoolean) (….Logging…) If Not Cancel Then Me.ListBox1.Enabled = False (…DisplayStatusBar / ScreenUpdating / ListBox1.BackColor…) launch_macro (…DisplayStatusBar / ScreenUpdating / ListBox1.BackColor…) Me.ListBox1.Enabled = True End If End sub 看起来像Excellogging/队列ListBox1_DblClick事件(为将来执行),而关联的列表框被禁用 。 为什么 ? 我怎样才能防止这个? 我也试过没有成功: locking : Me.ListBox1.Locked = True Doevents :在Me.ListBox1.Enabled = False之后添加DoEvents EnableEvents […]

VBA(Excel)ActiveX列表框更改事件recursion行为

我不是VBA程序员,所以如果我在这个问题上的一些术语是不正确的,我会提前道歉。 我的一个同事想在清单被选中的时候立即清除这个select。 一些谷歌search后,我们发现一个办法是通过更改事件。 最初我们尝试了: Private Sub ListBox1_Change() For i = 0 To ListBox1.ListCount – 1 ListBox1.Selected(i) = False Next i End Sub 但是,似乎将Selected属性设置为False会在列表框上触发Change事件,并且这实际上会变成无限循环并导致Excel(2007)崩溃。 鉴于我们知道有两个条目我们也试过: Private Sub ListBox1_Change() ListBox1.Selected(0) = False ListBox1.Selected(1) = False End Sub 那可行! 虽然我们期望同样的行为 – 对于Selected属性的设置,会导致Change事件再次触发并导致无限循环。 然而,似乎有一次例如ListBox1.Selected(0)= False Change事件被重新触发,但在这个迭代它不重新触发这一行 – 我猜是因为它知道这个Selected属性已经被设置为False对于这个项目,所以没有什么改变。 但是,如果是这样的话,那么我们也会期望在第一个解决scheme中的行为..所以似乎有一些区别说ListBox1.Selected(i)= False与直接指定实际项目索引(而不是通过variablesi )。 有没有人知道这种行为的原因? 希望这个问题是有道理的,我试着尽我所能解释它。 谢谢阿米特