2016-07-06 59 views
0

我讀過很多問題,重新讓我避免使用選擇。所以我試圖設置一個目標單元格,但是我遇到了一個問題:我想使用For循環來填充一個表格,但是每次循環都會改變目標單元格。例如:如何在循環外設置範圍並在其內部使用

Sub try() 

Dim target As Range 
Set target = Worksheets("Data").Cells(i, 1) 

For i = 1 To 10 
    target.Value = i 
Next i 

End Sub 

那麼我可以在循環中使用Range嗎?

如果我在For Loop中設置目標,恐怕它不會比我直接在Loop中選擇單元格Worksheets("Data").Cells(i, 1)更快?因爲我實際上會有很多目標可供使用,所以我希望找到一種更簡單的方法來設置目標並每次填充它們而不必一一設置目標。

對不起,如果我發佈了一個重複的問題,因爲我沒有在網上找到類似的問題或答案。如果你有一個想法,請留下評論。謝謝!

+0

爲什麼不直接使用'Worksheets(「Data」)。Cells(i,1).Value = i''而不是將target設置爲單元格。 – Mrig

+0

因爲我有很多目標可供使用,例如:'工作表(「數據」),單元格(i,1),值= i'和工作表單(「數據」)。單元格(i,2).Value = i + 1',我也想在'Loop'中獲得一些信息,比如'Color = Worksheets(「Data」)。Cells(i,10).Text' – Hiddenllyy

+0

所以在你看來,這不是一件好事想在之前設置'Range'並在循環中使用它們? – Hiddenllyy

回答

0

根據您對「閱讀」每一行的評論。此代碼使用For Each並檢查每個單元格以查看要執行的操作。

Public Sub Test() 

    Dim rMyRange As Range 
    Dim rCell As Range 

    'Define a range on the same sheet. 
    Set rMyRange = ThisWorkbook.Worksheets("Sheet1").Range("A1:A15,C1:C20,D18,E19:E20") 

    'Add another range using Union just for the hell of it. 
    Set rMyRange = Union(rMyRange, ThisWorkbook.Worksheets("Sheet1").Range("F30")) 

    'Step through each cell in rMyRange and decide what to do based on contents/formatting of cell. 
    For Each rCell In rMyRange 
     If rCell = "Colour" Then 'Value is default property. 
      rCell.Interior.Color = RGB(255, 0, 0) 
     Else 
      Select Case rCell.Font.Color 
       Case 255 'Red 
        rCell = "Red" 
       Case 5287936 'Green 
        rCell = "Green" 
       Case Else 
        rCell = "Some Other Colour" 
      End Select 
     End If 
    Next rCell 

End Sub 
+0

謝謝,但這對我的工作不太有用。我認爲這是我沒有很好地解釋我的需求。我想填寫一張表格(產品質量控制報告)。例如,電視1 |顏色|大小|價格和TV2 |顏色|大小|價錢。對於報告中的每個單元格,我需要在另一個工作表中查找結果,並檢查這是否是我需要填寫的「TV」的結果(這是TV1或TV2的結果)。然後檢查這是顏色的答案,還是尺寸,價格等的答案。最後,用正確的答案填寫報告。 – Hiddenllyy

+0

啊對,所以你在兩張紙上都有文字來進行比賽 - 例如在Sheet1上,你有一個帶有「TV1」的單元格,你想在另一個表單上查找「TV1」並返回相鄰列中相應的顏色,大小,價格等信息? –

+0

是的!所以我想在Loop之外做一些'Set'(如果可能的話)並使用'Colour.value = NewReport.Colour.Value',就像這樣。我認爲閱讀和維護可能更快,更容易。 – Hiddenllyy