Listbox Multiselect添加到下一个可用的空白单元格&从原始范围中删除

时间:2016-11-08 16:29:53

标签: excel vba excel-vba

希望有人可以帮助我吗?我有2个列表框RndAdd1& RndEdit1。我希望能够在RndAdd1中多选项目,然后单击Button1,它会遍历所选项目,并且一次将它们添加到新范围(第一个空白单元格),直到添加所有项目。然后删除刚刚从原始范围添加的所有值。 (基本上从星期一的A列移到B列,到星期二的C列到D,等等)

我还有另一个变量集(一周的哪一天)我有以下代码,我将按钮放置,然后嵌套一系列if / Elseif语句。

我目前遇到的问题是它在第一个空白单元格中发布了第一个值,然后第二个值会覆盖第一个值,依此类推,直到现在只有最终值在新范围内可见。这可能是一个简单的修复,我只是没有以正确的方式思考它!

Dim lItem As Long
For lItem = 0 To RndAdd1.ListCount - 1
    If RndAdd1.Selected(lItem) = True Then
        If ComboBox1.Value = "Monday" Then
            Sheets("Setup").Range("B65536").End(xlUp)(0, 1) = RndAdd1.List(lItem)
            RndAdd1.Selected(lItem) = False
        End If
    End If
Next

RndAdd1.Clear
RndEdit1.Clear
ComboBox1.Clear
ComboBox1.List = Array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")

ComboBox1.Value = "Monday"

'Tuesday Repeat Code but with different range to take round numbers from

2 个答案:

答案 0 :(得分:1)

我在手机上,所以不能发布代码购买也许这可以帮到你:

Dim TargetRange as range 

Set TargetRange = thisworkbook.sheets(1).range("A1")  'or whereever you want it

Do until IsEmpty(TargetRange.value)
Set targetrange = targetrange.offset(1,0)
Loop

TargetRange.value = "your value here"

这会循环直到找到一个空单元格

希望有所帮助

答案 1 :(得分:0)

替代

Sheets("Setup").Range("B65536").End(xlUp)(0, 1) = RndAdd1.List(lItem)

With Sheets("Setup")
    .Range(.Rows.Count, "B").End(xlUp).Offset(1) = RndAdd1.List(lItem)
End With