2017-07-26 82 views
0

我想在每個工作表的「R」列中找到最大值。如果MaxValue大於6,那麼我會在「C」列中將範圍設置爲0到MaxValue,增量爲0.1。如果MaxValue小於6,我想以0.1爲增量將「C」列中的範圍設置爲0到6。查找最大值並將範圍設置爲等於值

Dim rng As Range 
    Set rng = ws1.Range("R2-R6000") 
    MaxValue = Application.WorksheetFunction.Max(rng) 
    If MaxValue > 6 Then 
    Lx = MaxValue 
    Else 
    Lx = 6 
    End If 

我試圖設置代碼,但我對VBA很新,所以我不確定如何去執行他的任務。提前致謝!

+0

能否請你澄清這意味着什麼:在0.1'增量'設置在「C」柱的範圍爲0到MaxValue的?你想在代碼中定義一個範圍對象?或者你是否想以.1爲增量填充單元,直到最大數量?或者是什麼? –

+0

我想以0.1的增量填充單元格到最大數量。 – Kenzie

回答

0

最好是明確地限定您的工作表,但這會得到一個好的開始。看評論

Dim rng As Range 
Set rng = ws1.Range("R2:R6000") 

Dim MaxValue as Double 
MaxValue = Application.WorksheetFunction.Max(rng,6) 'this will force 6 or > 

Dim dCounter as Double 

Do 

    dCounter = dCounter + .1 

    'adjust this fill range to whatever you need   
    Range("A" & Rows.Count).End(xlup).Offset(1).Value = dCounter 

Loop Until dCounter = MaxValue 
+0

我試過這段代碼,它只填充單元格從0.1到6.1,如果「R」列的最大值大於6,我希望它繼續超過6.1。 – Kenzie

+0

這適用於我。雖然我確實改變了'循環直到dCounter = MaxValue',所以它*停止*在最大值。確保R中的值大於6並且會產生最大值。否則,將是6。 –

0

此代碼的工作對我來說:

Dim ws As Worksheet 
Dim rng As Range 
Dim MaxValue As Long 
Dim NumberOfCells As Long 
Dim i As Double 

For Each ws In Worksheets 
    ws.Activate 
    Set rng = ws.Range("R2:R6000") 

    MaxValue = Application.WorksheetFunction.Max(rng) 

    If Not MaxValue > 6 Then 
     MaxValue = 6 
    End If 

    NumberOfCells = MaxValue/0.1 

    Set rng = Nothing 

    i = 0 
    For Each rng In ws.Range("C1:C" & NumberOfCells + 1) 
     rng.Value = i 
     i = i + 0.1 
    Next rng 

Next 
相關問題