【发布时间】:2015-11-28 04:03:33
【问题描述】:
刚接触 VBA 和 Stackoverflow,但喜欢学习 VBA 及其功能。 我已经完成了一些小的代码工作,并在这方面取得了良好的开端。
我有一个名为 Master Copy Ledger 的用户表单,它有一个用户表单,其中包含一个列表框(从工作表中提取的人员姓名)、文本框(在文本框上方有 12 个月的标签和左侧的标签,其中包含我想要的统计信息根据从列表框或文本框旁边的 getdata 命令按钮中选择的名称从不同的工作簿中检索)
我想要获取的数据在同一个工作簿中(现在),A 列中的人名和 B、C、D 列到 L 列中的每个统计信息。 我现在有一个工作副本,当我选择一个名称时,我会得到 Sheet1(1 月)的数据,但现在需要弄清楚如何将 Sheet2(2 月)、Sheet3(3 月)等放入用户窗体中,是否应该进入单独的文本框或者我可以拉伸原始文本框。如果我必须使用单独的文本框,那么我是否假设我必须为每个“getdata”函数创建新代码,就像我在原始文件中所做的那样,或者是否有一个循环函数可以检查所有工作表并找到名称并获取数据和放入文本框(拉伸)或单独的文本框。最终我将学习从不同的工作簿中获取但需要从某个地方开始,并且相同的工作簿是代码现在工作的地方,所以我说顺其自然,直到我把它打包然后我将查看不同的工作簿 (20xxperformance.xlsx),它是 1 级的,一旦找到该名称,它就会从每一列收集数据并将其放置在正确的文本框中。 现在我有一个 20xxperformance 的用户表单的工作副本
Private Sub cbo_Agent_Change()
Dim Rws As Long, ConRng As Range, AdhRng As Range, AHTRng As Range, ACWRng As Range, TcktsRng As Range, LMIRng As Range, UnderRng As Range, KnowRng As Range, OvrSatRng As Range, OvrScoRng As Range, NPSRng As Range, Agnt As Range
Rws = Cells(Rows.Count, "A").End(xlUp).Row
Set Rng = Range(Cells(2, 1), Cells(Rws, 1))
Set Agnt = Rng.Find(what:=cbo_Agent, lookat:=xlWhole)
Set ConRng = Agnt.Offset(0, 1) 'set ConRng
Set AdhRng = Agnt.Offset(0, 2) 'set AdhRng
Set AHTRng = Agnt.Offset(0, 3) 'set AHTRng
Set ACWRng = Agnt.Offset(0, 4) 'set AHTRng
Set TcktsRng = Agnt.Offset(0, 5) 'set TcktsRng
Set LMIRng = Agnt.Offset(0, 6) 'set LMIRng
Set UnderRng = Agnt.Offset(0, 7) 'set UnderRng
Set KnowRng = Agnt.Offset(0, 8) 'set KnowRng
Set OvrSatRng = Agnt.Offset(0, 9) 'set OvrSatRng
Set OvrScoRng = Agnt.Offset(0, 10) 'set OvrScoRng
Set NPSRng = Agnt.Offset(0, 11) 'set NPSRng
txt_Con = ConRng
txt_Adh = AdhRng
txt_AHT = AHTRng
txt_ACW = ACWRng
txt_tckts = TcktsRng
txt_LMI = LMIRng
txt_Under = UnderRng
txt_Know = KnowRng
txt_Osat = OvrSatRng
txt_OScor = OvrScoRng
txt_NPS = NPSRng
End Sub
Private Sub UserForm_Initialize()
Dim Rws As Long, Rng As Range
Rws = Cells(Rows.Count, "A").End(xlUp).Row
Set Rng = Range(Cells(2, 1), Cells(Rws, 1))
cbo_Agent.List = Rng.Value
End Sub
正如我提到的,我是 VBA 新手,感觉在大家的帮助下我取得了更多成就,并且发现自己再次寻求专家建议并需要一些帮助。我不是在寻找整个代码(如果有人这样做了,请谦虚地接受),但至少是另一个很棒的代码,这样我就可以理解并实践你的教导。
谢谢
呸呸呸
【问题讨论】:
-
xlorate.com/userform-vba-page.html 或 youtu.be/YRdpw7mn9-g 或 youtu.be/Hj1yzawOiog 让您开始。一旦您知道如何填充用户窗体控件,就可以开始从不同的工作簿填充控件
-
删除了我的 cmets,更新了帖子并包含了代码。
-
那么这是怎么回事?