宏的目的是根据所选案例在我的“推荐”表的下拉列表中选择正确的数据。
这是我的代码:
Private Sub cmbNatCoList_Change()
'Define selected NatCo and variables for loop
Dim NatCoList As String
Dim ZeileUntersucht As Integer
Dim ZeileEintragen As Integer
'Line which is looked at in NatCo sheet
ZeileUntersucht = 17
'Line which is written in in Recommendation Sheet
ZeileEintragen = 15
'Selected NatCo
NatCoList = cmbNatCoList.Value
'Set selected NatCo on NatCoRecommendations sheet
'ThisWorkbook.Sheets("NatCoRecommendations").cmbNatCoList.Value = NatCoList
'Set position and size of combobox
cmbNatCoList.Top = 85
cmbNatCoList.Left = 1120
cmbNatCoList.Width = 100
cmbNatCoList.Height = 40
'Write selected NatCo on charts
Range("z1") = NatCoList
Worksheets("Stock Control Chart").Range("C61") = NatCoList
Worksheets("Price Chart").Range("D44") = NatCoList
'Search for recommendations for selected NatCo
Select Case NatCoList
'========================================
Case Is = "TDG"
Worksheets("Recommendations").Rows("1:224").Hidden = False
'Loop looking for recommendations in each line, writes BNCode in list if yes
and continues with next line, if not just continues
For ZeileUntersucht = 20 To 515
If Worksheets("TDG").Cells(ZeileUntersucht, 238).Value = "yes" Then
Worksheets("Recommendations").Cells(ZeileEintragen, 3) = Worksheets("TDG").Cells(ZeileUntersucht, 1)
ZeileEintragen = ZeileEintragen + 1
End If
Next ZeileUntersucht
'===========================================
Case Is = "TMNL"
Worksheets("Recommendations").Rows("1:263").Hidden = False
For ZeileUntersucht = 20 To 515
If Worksheets("TMNL").Cells(ZeileUntersucht, 238).Value = "yes" Then
Worksheets("Recommendations").Cells(ZeileEintragen, 3) =
Worksheets("TMNL").Cells(ZeileUntersucht, 1)
ZeileEintragen = ZeileEintragen + 1
End If
Next ZeileUntersucht
这是我试图改进的代码的一部分。
那些案例大约是20个,我只是在这里向你展示两个。里面的代码是完全相同的,唯一随选择案例而变化的是它正在查看的工作表。
需要注意的重要事项:宏始终只选择(使用)一种情况。
如果您需要更多信息,请询问。
我注意到你设置Hidden为false的Recommendations中第一个Case的行数是1:224,第二个是1:263,但是如果这个应该是相同的,那么类似下面的那些做,只需用以下内容替换整个Select Case:
Worksheets("Recommendations").Rows("1:224").Hidden = False
For ZeileUntersucht = 20 To 515
If Worksheets(NatCoList).Cells(ZeileUntersucht, 238).Value = "yes" Then
Worksheets("Recommendations").Cells(ZeileEintragen, 3) = Worksheets(NatCoList).Cells(ZeileUntersucht, 1)
ZeileEintragen = ZeileEintragen + 1
End If
Next ZeileUntersucht