VBA Excel:如果更改了文本框,则添加第二组命令

我正在忙于build立一个使用VBA和Excel的Shift轮换计划,在我坐在一个问题的时刻在我的Userform中,我有434个文本框给出了每个代理的轮class分配,如下所示: 在这里输入图像说明

现在为了得到这些颜色的改变,我在每个文本框(名字A1,A2 ….. A31,然后B1,B2 ,,,,,, B31等)中都有一个代码,代码如下:

Private Sub A1_Change() If A1.Text = "A" Then A1.BackColor = &H602000 ElseIf A1.Text = "B" Then A1.BackColor = &HC07000 ElseIf A1.Text = "C" Then A1.BackColor = &HEED7BD ElseIf A1.Text = "D" Then A1.BackColor = &HF0B000 ElseIf A1.Text = "W" Then A1.BackColor = &HFF& ElseIf A1.Text = "M" Then A1.BackColor = &H808080 ElseIf A1.Text = "S" Then A1.BackColor = &HA6A6A6 ElseIf A1.Text = "P" Then A1.BackColor = &H7D7DFF ElseIf A1.Text = "L" Then A1.BackColor = &HD9D9D9 End If End Sub 

我现在正在尝试允许用户手动编辑class次,一旦完成,他们将能够点击一个设置button,将数据从特定代理行复制到工作表上基于select的月份,例如:

 Private Sub CommandButton2_Click() If Sheets(3).Range("B5").Text = "2018-01-01" Then Worksheets("LAYOUT").Activate Sheets("LAYOUT").Range(B4).Text = A1.Value Sheets("LAYOUT").Range(C4).Text = A2.Value Sheets("LAYOUT").Range(D4).Text = A3.Value Sheets("LAYOUT").Range(E4).Text = A4.Value Sheets("LAYOUT").Range(F4).Text = A5.Value . . . . Sheets("LAYOUT").Range(AD4).Text = A29.Value Sheets("LAYOUT").Range(AE4).Text = A30.Value Sheets("LAYOUT").Range(AF4).Text = A31.Value ElseIf Sheets(3).Range("B5").Text = "2018-02-01" Then Worksheets(1).Activate Sheets("LAYOUT").Range(AG4).Text = A1.Value . . . . . Sheets("LAYOUT").Range(BJ4).Text = A30.Value Sheets("LAYOUT").Range(BK4).Text = A31.Value ElseIf Sheets(3).Range("B5").Text = "2018-03-01" Then Worksheets(1).Activate Sheets("LAYOUT").Range(BI4).Text = A1.Value Sheets("LAYOUT").Range(BJ4).Text = A2.Value ect 

现在,当我做出改变,然后点击CommandButton2,它什么都不做…我要去哪里错了?

哇,那是…呃…真的 你得到一个“ A ”的决心 ,但一个“ C- ”的学习技巧 。 (我的意思是说,尽可能最好的方式!):)

很多方法可以创build一个像这样的dynamic多彩表单(用户没有敏感的代码),而且你几乎可以select最难和最复杂的方式。 不幸的是,复杂的简单任务往往会使他们更有可能在未来出现一个小的原因,然后可能需要永远找出问题,如果你是宝贝没有完全崩溃,失去了所有的数据。

我不认为我以前见过太多的variables错误! (即使Excel希望你简化。)对不起,如果这没有资格作为答案,但我认为你最好最好从适当的方式开始格式化。

omg,“5208代码行”)如果你确切地知道你有多less行代码,你是太重复了! Excel或VBA或整体编码的全部重点就是让电脑做好工作!

如果您担心学习新的Excelfunction,请不要这样做。 你显然有一些技巧和组织可以做到这一点! Excel中有一些基本的东西你应该自学

有些事情要学习,尽快(你会很高兴你做的 !)

  • select… Case语句 (而不是ElseIf ElseIf ElseIf)

  • With..End With语句 (而不是A1.BackColor A1.BackColor A1.BackColor)

  • VLookup (在表中存储可重用值)

  • 匹配/索引

  • 在Excel中保护工作表

  • 条件格式! (根据值或公式自动更改单元格的颜色等)。

  • 数组 ! 存储 (如颜色名称和单元格触发值)和控制 。

  • VBA活动! (当其他东西发生时自动发生) – 从Chip Pearson (Excel之王)的网站 ,

  • 制作一个Excel页面的静态网页

  • 一些Excel的惊人的内置function

  • Microsoft Excel公式和function,你需要知道

  • ExcelGuru论坛

  • 甚至: 为Excel旋转class次计划模板 (可以随时使用,免费,您可以根据需要进行调整,由专业人员修改)

祝你好运…这些是一些不错的颜色select!