2017-08-15 315 views
-2

我遇到過麻煩循環我對於這個dataVBA - 通過子循環FOR/if語句

Dim c As Range, color As Integer, y As Integer 
Sheets("Point Names").Select 
numpts = Range("A2", Range("A2").End(xlDown)).Rows.Count 
y = x 
With Sheets("Reporting") 
    For y = 1 To numpts 
     Set c = Range("C" & (12 * y - 2)) 
     For color = c To Range(c, Range(c).End(xlToRight)).Columns.Count 
      If Cells(color).FormulaR1C1 = "=Abs(R[-2]C-R[-1]C)/R[-1]C)" _ 
      > ToleranceMean * ActiveCell.Offset(-1, 0) Then 
       Cells(color).Interior.color = RGB(255, 0, 0) 
      End If 
     Next color 
    Next y 
End With 

我的目標是獲得在該線位於公差外的意思是紅色的每一個單元,Change in Temp聲明。

在此先感謝。

+0

這是什麼做的是錯誤的。這裏沒有問題。 –

+1

你的問題是什麼?我相信,如果你的數據以左上角的'A1'開始,你的'numpts'將始終爲'2'。也許想用'A3'作爲計數的範圍? – BruceWayne

+0

我把一個更好的圖片來描述它。它只是沒有適當的循環。另外還有不同數量的這樣的分組。對於這個特定的例子,還有10個這樣的其他分組。 –

回答

1

我看到很多與該代碼有關的問題,但可能需要首先解決的問題:您正在選擇工作表"Point Names"(爲什麼選擇它?不需要),使用表單(「Reporting」) - 聲明但在with內,您並未使用任何with。你所有的代碼都使用活動工作表,這可能不是你想要的。你必須寫.cells.Range(注意前導點)