2016-12-04 7 views
1
Private Sub CommandButton1_Click() 

Dim Year    As Long 
Dim i As Long 

Year = 2008 
For Year = 2008 To ComboBox2.Value 
    For i = 2 To 200 Step 12 
     If ComboBox1.Value = "Januari" Then 
      Range("G15").Value = Sheets(3).Cells(i, 1).Value 
     ElseIf ComboBox1.Value = "Februari" Then 
      Range("G15").Value = Sheets(3).Cells(i + 1, 1).Value 
     ElseIf ComboBox1.Value = "Maret" Then 
      Range("G15").Value = Sheets(3).Cells(i + 2, 1).Value 
     ElseIf ComboBox1.Value = "April" Then 
      Range("G15").Value = Sheets(3).Cells(i + 3, 1).Value 
     ElseIf ComboBox1.Value = "Mei" Then 
      Range("G15").Value = Sheets(3).Cells(i + 4, 1).Value 
     ElseIf ComboBox1.Value = "Juni" Then 
      Range("G15").Value = Sheets(3).Cells(i + 5, 1).Value 
     ElseIf ComboBox1.Value = "Juli" Then 
      Range("G15").Value = Sheets(3).Cells(i + 6, 1).Value 
     ElseIf ComboBox1.Value = "Agustus" Then 
      Range("G15").Value = Sheets(3).Cells(i + 7, 1).Value 
     ElseIf ComboBox1.Value = "September" Then 
      Range("G15").Value = Sheets(3).Cells(i + 8, 1).Value 
     ElseIf ComboBox1.Value = "Oktober" Then 
      Range("G15").Value = Sheets(3).Cells(i + 9, 1).Value 
     ElseIf ComboBox1.Value = "November" Then 
      Range("G15").Value = Sheets(3).Cells(i + 10, 1).Value 
     ElseIf ComboBox1.Value = "Desember" Then 
      Range("G15").Value = Sheets(3).Cells(i + 12, 1).Value 
     End If 
    Next i 

Next Year 

Sheets(2).Range("I5").Value = ("CONTRACT SPOT") 

End Sub 

januari 2009のコンビネーションを表示する場合は1を、januari 2010のコンビネーションを表示する場合は13を選択します。助けてくださいステートメントが基準を満たしたときにループを停止する方法はありますか? -vba-excel

+0

これまでのところループ終了時に最後の数字しか表示されません。たとえば、januari 2009が表示されます。193 – Yomi

+0

combobox2.valueの範囲は2008〜2050です。 – Yomi

+0

Forループを終了する場合は、条件が満たされたら、 'If'の中に' Exit For'ステートメントを入れます。何を正確にあなたのコードでやろうとしているのか、もしあなたがもっと説明したら、コードを最適化する方法があるかもしれない。 –

答えて

1

したがって、ComboBox1.Valueには月があり、ComboBox2.Valueには年があります。

そして、あなたは 1 = 1月、2009 2 = 2009年2月 をカウントしたい... 13 = 2010年1月には

その後、あなたには、いくつかの数学を行う必要があり

Dim iMonth as Integer 

Dim iYear as Integer 
iYear = ComboBox2.Value 

Select Case ComboBox1.Value 
    Case "Januari" 
     iMonth = 1 
    Case "Februari" 
     iMonth = 2 
    Case "Maret" 
     iMonth = 3 
    Case "April" 
     iMonth = 4 
    Case "Mei" 
     iMonth = 5 
    Case "Juni" 
     iMonth = 6 
    Case "Juli" 
     iMonth = 7 
    Case "Agustus" 
     iMonth = 8 
    Case "September" 
     iMonth = 9 
    Case "Oktober" 
     iMonth = 10 
    Case "November" 
     iMonth = 11 
    Case "Desember" 
     iMonth = 12 
End Select 

Range("G15").Value = Sheets(3).Cells(iMonth + ((iYear - 2009) * 12), 1).Value 

Iこれをオンザフライでコーディングしただけで、エラーが発生することがあります。 :)

+0

別のシートから値を取ってほしい、1月2009 = 1、 "1"はダミーの番号です。 – Yomi

+0

あなたが何を言おうとしているかははっきりしません。したがって、2009年1月のデータはシート1に格納され、2009年2月はシート2などに格納されます。 –

+0

いいえ、月と年のデータのすべての組み合わせがストアtシート3 – Yomi

関連する問題