用户表单填写列
编辑:几乎解决参考我最近的评论和相关的代码。用户表单填写列
我想要一个窗体来填补根据用户表单上
用户窗体有16个复选框,包含个月(一月至十二月)两个列表框,以及所做的选择工作表的A列一个包含年份(两位数字)的列表框
我希望用户窗体在字符串中填写XX YYY和ZZ,并为每个复选框选择(每个选择一个月)生成两个值,并将这些值粘贴一个另一列在A列
(G:\ Reporting \ XX_MISSE_YYY20ZZ.xls)
其中XX对应于我选择的复选框(可以在总共1-16个选项之间) 和YYY对应于月份的列表框选择(仅仅为了重申我希望在那里有两个从两个月选择生成的值列表框) 和ZZ对应两位数列表框选择为一年
换句话说...
我想什么USERBOX做的是,如果我选择在我的用户形成了相应的复选框到AH和AD(例如),我选择mar和Apr作为月份列表框,而13表示年份列表框,我的结果将在列A中为
产生的将是第一值(G:\报告\ AH_MISSE_MAR2013.xls):生成(\报告\ AH_MISSE_APR2013.xls G)在柱A2
第三值在列A1
产生将秒值将(G:\报告\ AD_MISSE_MAR2013.xls)在塔A3
产生将第四值(G:\报告\ AD_MISSE_APR2013.xls)在塔A4
Private Sub cbtnSubmit_Click()
Dim sMonth1 As String
Dim sMonth2 As String
Dim sYear As String
Dim cMyControl As Control
Dim TargetCell As Range
Dim iOff As Integer
sMonth1 = Me.lbMonth1.Value 'get the first month from the listbox
sMotnth2 = Me.lbMonth2.Value 'get the second month from the listbox
sYear = Me.lbYear.Value 'get the year
TargetCell = ThisWorkbook.Worksheets(1).Range("A1") 'Where we want to start outputing
iOff = 0 'Start output with no cell offset
For Each cMyControl In Me.Controls 'Loop through all control on the form
If TypeName(cMyControl) = "CheckBox" Then 'Finding the Checkboxes
'then writing the values to the excel sheet
TargetCell.Offset(iOff, 0).Value = "G:\Reporting\" + cMyControl.Tag + "_MISSE_" + sMonth1 + ".xls"
TargetCell.Offset(iOff, 1).Value = "G:\Reporting\" + cMyControl.Tag + "_MISSE_" + sMonth2 + ".xls"
'after I've written two value, "move" down two cells
iOff = iOff + 2
End If
Next
End Sub
该代码似乎完全正确,所以我不明白为什么它不工作......我将宏设置为同一个用户窗体上的按钮。我唯一能想到的就是它没有正确引用我的复选框,因为我在列表框中命名了代码中的名称,但并不完全确定如何处理复选框,因为有太多。我应该将它们分组还是让它们分离?截至目前,它们被命名为复选框1-16。另外为了给你一些背景,代码一直运行,没有问题,但是这些值不会出现在目标单元格中。有什么想法吗? – 2013-05-08 09:24:47
Nvm我明白了,虽然你的代码并不完美,但如果没有你,我不会解决它,所以我会给你选择的答案,然后投票赞成非常感谢你 – 2013-05-08 10:34:33
哪里阿勒你存储“AH “,”AD“等等ckbox? (提示:标签属性可能是正确的答案) – 2013-05-07 21:34:50
@Declan_K哈哈,也许我不太了解用户表单太好...我没有问题的形式内置我实际上要求协助如何建立我的用户窗体,但我会看看标签属性,并返回给你 – 2013-05-07 21:51:30