Board logo

標題: [發問] 程式碼用For迴圈簡化 [打印本頁]

作者: liebe    時間: 2017-8-29 15:35     標題: 程式碼用For迴圈簡化

各位大大們好!
由於條件總共有141個(從2到142個),若是以IF ELSEIF 下去撰寫會使程式很龐大
由於對於For迴圈不了解,
所以想請教大大們下列程式該如何用FOR迴圈去簡化呢?
要求為當Range("I2")的値為X時,會刪除以下的點(如:數値=10時,會刪除1-9的點)
感謝大家!
  1. If Sheets("Tabelle2").Range("I2").Value = 2 Then
  2.     ActiveChart.SeriesCollection(2).Points(1).DataLabel.Delete
  3.    
  4.     ElseIf Sheets("Tabelle2").Range("I2").Value = 3 Then
  5.      ActiveChart.SeriesCollection(2).Points(2).DataLabel.Delete
  6.       ActiveChart.SeriesCollection(2).Points(1).DataLabel.Delete
  7.    
  8.     ElseIf Sheets("Tabelle2").Range("I2").Value = 4 Then
  9.     ActiveChart.SeriesCollection(2).Points(3).DataLabel.Delete
  10.      ActiveChart.SeriesCollection(2).Points(2).DataLabel.Delete
  11.       ActiveChart.SeriesCollection(2).Points(1).DataLabel.Delete
  12.    
  13.     ElseIf Sheets("Tabelle2").Range("I2").Value = 5 Then
  14.     ActiveChart.SeriesCollection(2).Points(4).DataLabel.Delete
  15.     ActiveChart.SeriesCollection(2).Points(3).DataLabel.Delete
  16.      ActiveChart.SeriesCollection(2).Points(2).DataLabel.Delete
  17.       ActiveChart.SeriesCollection(2).Points(1).DataLabel.Delete
  18.    
  19.     ElseIf Sheets("Tabelle2").Range("I2").Value = 6 Then
  20.     ActiveChart.SeriesCollection(2).Points(5).DataLabel.Delete
  21.     ActiveChart.SeriesCollection(2).Points(4).DataLabel.Delete
  22.     ActiveChart.SeriesCollection(2).Points(3).DataLabel.Delete
  23.      ActiveChart.SeriesCollection(2).Points(2).DataLabel.Delete
  24.       ActiveChart.SeriesCollection(2).Points(1).DataLabel.Delete
  25.       
  26.        ElseIf Sheets("Tabelle2").Range("I2").Value = 7 Then
  27.       ActiveChart.SeriesCollection(2).Points(6).DataLabel.Delete
  28.     ActiveChart.SeriesCollection(2).Points(5).DataLabel.Delete
  29.     ActiveChart.SeriesCollection(2).Points(4).DataLabel.Delete
  30.     ActiveChart.SeriesCollection(2).Points(3).DataLabel.Delete
  31.      ActiveChart.SeriesCollection(2).Points(2).DataLabel.Delete
  32.       ActiveChart.SeriesCollection(2).Points(1).DataLabel.Delete
複製代碼

作者: ML089    時間: 2017-8-29 23:46

Sub EX()
    Dim T2I2%, K%
    T2I2 = Sheets("Tabelle2").Range("I2").Value

    If T2I2 >= 2 And T2I2 <= 42 Then
        For K = 1 To T2I2 - 1
            ActiveChart.SeriesCollection(2).Points(K).DataLabel.Delete
        Next
    Else

    End If
End Sub
作者: liebe    時間: 2017-8-30 14:13

回復 2# ML089
首先感謝版主大大!!
目前對於VBA程式的撰寫還有些不了解想再問一下版主
""" Dim T2I2%, K%"""
其中的 " % "代表什麼意思呢?
感謝!
作者: ML089    時間: 2017-8-30 17:38

回復 3# liebe

% 整數




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)