循环通过多选列表框值来创建和命名工作簿 [英] Looping through Multi-selected Listbox values to create and name workbook

查看:89
本文介绍了循环通过多选列表框值来创建和命名工作簿的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

列表框未将所选值分配给n。无论我是从列表框中选择值,n值都为0。我正在学习,所以可能是一件简单的事情,我错过了...建议?谢谢!

The listbox is not assigning the selected values to "n". The "n" value is 0 regardless if I select values from the listbox or not. I'm learning, so it could be something simple that I'm missing... suggestions? Thanks!

Private Sub UserForm_Initialize()

With cbomonth
    .AddItem "January"
    .AddItem "February"
End With
With cboyear
    .AddItem "2013"
    .AddItem "2014"
End With
With cboteam
    .AddItem "Team1"
    .AddItem "Team2"
End With
With cbodocument
    .AddItem "Task1"
    .AddItem "Task2"
End With
With ListBox1
.AddItem "Name"
.AddItem "Name"
End With
cboteam.ListIndex = 0
cboyear.ListIndex = 4
cbomonth.ListIndex = 6
cbodocument.ListIndex = 1

End Sub

Private Sub cmdSubmit_Click()

    Dim year As String
    Dim month As String
    Dim days As Integer
    Dim team As String
    Dim n as Long
    Dim tallboxynames As Variant
    Dim tallynewfile As String

    Unload Me

    year = cboyear.Value
    month = cbomonth.Value
    team = cboteam.Value
    document = cbodocument.Value

    TallyPath = "\\network path\Tally of orders\Master Template\"
    TallyPath1 = "\\network path\Tally of orders\" & year & "\"
    TallyPath2 = "\\network path\Tally of orders\" & year & "\" & month & "\"
    TallyTemplate = "Tally_Template_ver1.xls"

If document = "Tally Sheets" Then
    For n = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(n) Then
            tallynewfile = ListBox1.Selected(n) & ".xls"
        Else
            MsgBox "No data from listbox"
        End If
If Len(Dir(TallyPath1, vbDirectory)) = 0 Then
    MkDir TallyPath1
End If
If Len(Dir(TallyPath2, vbDirectory)) = 0 Then
    MkDir TallyPath2
    FileCopy TallyPath & TallyTemplate, TallyPath2 & tallynewfile
End If
    Next n
End If
Exit Sub
End Sub


推荐答案

移动将我卸载到过程结束

Private Sub cmdSubmit_Click()
    ' code here ...
    Unload Me
End Sub

要获取所选项目如果ListBox1.MultiSelect = 0 (fmMultiSelectSingle)使用值:

To get the selected item use Value if ListBox1.MultiSelect = 0 (fmMultiSelectSingle):

Me.ListBox1.Value

如果 MultiSelect> 0,则使用Selected属性,例如:

Private Function GetSelectedItems() As String
    Dim text As String
    Dim i As Integer
    For i = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(i) Then
            text = text & Me.ListBox1.List(i) & vbNewLine
        End If
    Next i
    MsgBox "Selected items are: " & text
    GetSelectedItemsText = text
End Function

这篇关于循环通过多选列表框值来创建和命名工作簿的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆